<?xml version="1.0" encoding="utf-8" standalone="no"?>
<book xmlns="http://docbook.org/ns/docbook" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xl="http://www.w3.org/1999/xlink" label="PS3.21" version="5.0" xml:id="PS3.21">

    <title>Digital Imaging and Communications in Medicine (DICOM)</title>
    <subtitle>Sup 219 - JSON Representation of DICOM Structured Reports</subtitle>
    <info>
        <author>
            <orgname>DICOM Standards Committee - Working Group 23 - Artificial Intelligence/Application Hosting</orgname>
            <address>
            <street>1300 N. 17th Street Suite 900</street>
            <city>Rosslyn</city>
            <state>VA</state>
            <postcode>22209</postcode>
            <country>USA</country>
         </address>
        </author>
        <copyright>
            <year>2017-2020</year>
            <holder>NEMA</holder>
        </copyright>
        <releaseinfo>Status: Draft Standard for Trial Use</releaseinfo>
        <pubdate>2020/08/13</pubdate>
        <legalnotice>
            <para>This supplement is prepared pursuant to work item: 2019-04-A.</para>
            <para>Publication of this Draft Standard for Trial Use and Comment has been approved by the Base Standard Working Group of the DICOM Standards Committee. Distribution of this draft standard for comment shall not continue beyond 12 months from the date of publication. It is expected, but not certain, that following this 12 month period, this Draft Standard, revised as necessary, will be submitted to the DICOM Standards Committee for approval as an addition to the DICOM Standard. Suggestions for revision should be directed to David Clunie <link xl:href="mailto:dclunie@dclunie.com"/> on behalf of Working Group 23.</para>
        </legalnotice>
    </info>

    <chapter>
        <title>Document History</title>
        <section>
            <title/>
            <informaltable rules="all" frame="box">
                <thead>
                    <tr valign="top">
                        <th rowspan="1" colspan="1">
                            <para>Document Version</para>
                        </th>
                        <th rowspan="1" colspan="1">
                            <para>Date</para>
                        </th>
                        <th rowspan="1" colspan="1">
                            <para>Content</para>
                        </th>
                    </tr>
                </thead>
                <tbody>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>01</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>2019/07/09</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>First draft for review by WG 23</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>02</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>2019/07/19</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>Changes after review by WG 23 and other feedback received</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>03</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>2019/07/22</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>Changes after feedback received (KH, AF)</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>04</para>
                        </td>
                        <td colspan="1">
                            <para>2019/09/08</para>
                        </td>
                        <td colspan="1">
                            <para>For WG 6 first read</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>05</para>
                        </td>
                        <td colspan="1">
                            <para>2019/09/09</para>
                        </td>
                        <td colspan="1">
                            <para>After WG 6 first read</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>06</para>
                        </td>
                        <td colspan="1">
                            <para>2019/11/02</para>
                        </td>
                        <td colspan="1">
                            <para>Assigned supplement number; new part is 23 not 22 (which was assigned to RTV); add Business Names File description; add PS3.17 example of pipeline with successive refinement of JSON; collapse value arrays into single strings in Content Tree (not yet data elements).</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>07</para>
                        </td>
                        <td colspan="1">
                            <para>2019/11/03</para>
                        </td>
                        <td colspan="1">
                            <para>More on open issues, including JSON-LD, positional versus parametric representation of coordinates etc., use of keywords and business names in place of UIDs, number of business names files and whether they should be explicitly referenced; more ambiguity resolution rules; move informative annex to front of document.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>08</para>
                        </td>
                        <td colspan="1">
                            <para>2019/11/07</para>
                        </td>
                        <td colspan="1">
                            <para>WG 6 review 2019/11/06: update to do items, open and closed issues; correct typos; improve scope and forward text, collapse value arrays into single strings in data elements as well as Content Tree, add example of empty (zero length) value for data element; add illustration with CT image and measurement for example.</para>
                         </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>09</para>
                        </td>
                        <td colspan="1">
                            <para>2019/11/07</para>
                        </td>
                        <td colspan="1">
                            <para>Public Comment.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>10</para>
                        </td>
                        <td colspan="1">
                            <para>2020/01/01</para>
                        </td>
                        <td colspan="1">
                            <para>Constrain characters in business names; add section headings for business name sub-sections and move out of Content Tree section; add MongoDB et al question; resolve public comments including using a reserved word for anonymous content items rather than an empty string, eliminating positional parameters and using reserved word annotations instead, allow null instead of empty object for zero length, allow standard keywords for UID VRs (esp. for SOP Classes); added FAQ to PS3.17 to answer questions about use of arrays and nesting to preserve order and allow duplicate concept names at same level; more disambiguation rules to avoid need for explicit relationship and value types, allow NUM to be JSON String or Number (consistent with CP 1861); update example to include Finding and to use anatomy that doesn't need laterality and with pictures that have more descriptive text for the rendered annotation; add experimental media types, complete annotations for
                                NUM; add more complex example using QIICR Iowa HN SEG; use component groups in PNAME.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>11</para>
                        </td>
                        <td colspan="1">
                            <para>2020/01/13</para>
                        </td>
                        <td colspan="1">
                            <para>Prepare draft for Trial Use after WG 23 review 2020/01/07, for WG 6 review 2020/01/13. Close remaining open issues on more compact coordinate representation and potential; person name optimizations.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>12</para>
                        </td>
                        <td colspan="1">
                            <para>2020/01/16</para>
                        </td>
                        <td colspan="1">
                            <para>WG 6 review 2020/01/13-15 to produce Draft for Trial Use.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>13</para>
                        </td>
                        <td colspan="1">
                            <para>2020/01/29</para>
                        </td>
                        <td colspan="1">
                            <para>Address IBM comments not considered prior to DFTU release, including clarifying use of Annex F JSON versus JSON for SR, the purpose of the new informative annex, elaborating on the separation of components for business name use vs. definition, that the successive refinement fragments (partial encoding) are not standard.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>14</para>
                        </td>
                        <td colspan="1">
                            <para>2020/08/13</para>
                        </td>
                        <td colspan="1">
                            <para>Correct examples in Section B.3.2.2.5.4 Encoding of Content Items That Reference Storage SOP Instances by inserting array, remove "tag" attribute from private data elements in QIICR example.</para>
                        </td>
                    </tr>
                </tbody>
            </informaltable>
        </section>
    </chapter>

    <chapter>
        <title>Tasks For Trial Use Phase</title>
        <section>
            <title/>
            <informaltable rules="all" frame="box">
                <tbody>
                    <tr>
                        <td colspan="1">
                            <para>1</para>
                        </td>
                        <td colspan="1">
                            <para>Fill in hyperlinks to other parts, and especially add hyperlinks to PS3.3 descriptions of each Value Type.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>2</para>
                        </td>
                        <td colspan="1">
                            <para>Example and test tool round trip - add DICOM data elements to business names file as described (including private data elements and creators)</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>3</para>
                        </td>
                        <td colspan="1">
                            <para>Text, examples and test tool round trip - add WAVEFORM and TCOORD Content Items and distinguish ReferencedSamplePositions, ReferencedTimeOffsets or Referenced DateTime</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>4</para>
                        </td>
                        <td colspan="1">
                            <para>Explore interaction of code value and long or URL code value (currently just separate annotations), as well as alternative codes.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>5</para>
                        </td>
                        <td colspan="1">
                            <para>Add SCOORD annotations for PixelOriginInterpretation (for WSI) and FiducialUID.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>6</para>
                        </td>
                        <td colspan="1">
                            <para>Explore use in a JSON document database (e.g., MongoDB), esp. re. use of attributes that might be queried.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>7</para>
                        </td>
                        <td colspan="1">
                            <para>Explore use of different business names for the same coded concept but for different values types simplifies parsing (and makes it more reliable)? E.g., "Derivation" used both as CODE and TEXT in same SR.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>8</para>
                        </td>
                        <td colspan="1">
                            <para>Explore need for explicit value or relationship type annotations if/when ambiguities arise during parsing.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>9</para>
                        </td>
                        <td colspan="1">Explore implications of not explicitly referencing the business names file by name or similar from within the Content Tree file</td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>10</para>
                        </td>
                        <td colspan="1">
                            <para>Explore implications of not allowing business name definitions in the Content Tree file.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>11</para>
                        </td>
                        <td colspan="1">
                            <para>Explore implications of using more than one business name definitions file (which is not explicitly prohibited, but which would need rules for precedence or to forbid collisions).</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>12</para>
                        </td>
                        <td colspan="1">
                            <para>Explore the usefulness of using JSON-LD in conjunction with the business names.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>13</para>
                        </td>
                        <td colspan="1">
                            <para>Explore the need for name spaces for business names.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>14</para>
                        </td>
                        <td colspan="1">
                            <para>Explore the need to reference into the JSON content, e.g., with a JSON Pointer (<link xl:href="http://tools.ietf.org/html/rfc6901"/>).</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>15</para>
                        </td>
                        <td colspan="1">
                            <para>Create a standard business names dictionary by processing PS3.16 automatically (and create tooling to automate its update with each standard release).</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>16</para>
                        </td>
                        <td colspan="1">
                            <para>Expand FAQ list as questions are asked and answered.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>17</para>
                        </td>
                        <td colspan="1">
                            <para>Explore the use of JSON Schemas and expand the preliminary proposed informative schemas to validate more specific constructs
                                as well as consider validating specific templates.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>18</para>
                        </td>
                        <td colspan="1">
                            <para>Compare PN representation with FHIR names.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>19</para>
                        </td>
                        <td colspan="1">
                            <para>Explore alternative terms for "business name".</para>
                        </td>
                    </tr>
                </tbody>
            </informaltable>
        </section>
    </chapter>

    <chapter>
        <title>Open Issues</title>
        <section>
            <title/>
            <informaltable rules="all" frame="box">
                <tbody>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para/>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para/>
                        </td>
                    </tr>
                </tbody>
            </informaltable>
        </section>
    </chapter>

    <chapter>
        <title>Closed Issues</title>
        <section>
            <title/>
            <informaltable rules="all" frame="box">
                <tbody>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>1</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>A new Part is needed, since there is no good home for this transformation. All the alternative representations be gathered in this new Part, specifically PS3.19 A.1 and PS3.18 Annex F. The PS3.19 A.2 Abstract Multi-Dimensional Image Model has not been moved. The previously named "Model" is renamed as "Encoding". Confirm. Consider "Representation" or "Format" rather than "Encoding".</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>2</para>
                        </td>
                        <td colspan="1">
                            <para>It is necessary to include the metadata associated with the SR content. The header is required eventually to make a valid DICOM object that can be stored in the PACS. The example shows a multi-step process: first generate the SR Content Tree, then add the header (a separate tool, not the AI result creator, can do this, given context and the original DICOM image headers). In the absence of a "platform" (which we are not yet defining), this work must occur out of band. The preamble to the document (and work item) describes such a platform as might be based on DICOMweb as out of scope for now, but you could imagine a service that added the JSON Content Tree (only) to an existing DICOM study and that filled in the header. An informative annex is added that shows a multi-step pipeline that successively refines the content.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">3</td>
                        <td colspan="1">
                            <para>Use line numbering in JSON examples in the PDF, even though it prohibits select/copy/paste for experimentation. The tooling doesn't permit line numbers to be turned off just for the examples, and they are need for reference by commentators. Suggest using the XML DocBook source if you want to copy/paste. The final standard will have no line numbers.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>4</para>
                        </td>
                        <td colspan="1">
                            <para>A general compact JSON model has not been used in favor of using a specific SR JSON model. One could remove "vr" and flat "Value" properties, encoding Person Names according PS3.5, and use JSON Pointers in URI fragments (https://tools.ietf.org/html/rfc6901#section-6) to include content from other (possibly remote) documents. This is not within the scope of the work item, which is specifically about simplifying the representation of the SR Content Tree, but is a subject that may be taken up by WG 27.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>5</para>
                        </td>
                        <td colspan="1">
                            <para>Keywords are allowed in place of hex tags, even though keywords do not work for private tags (without business names for them), repeating attributes (e.g. Overlays), and require a constant update of attributes after each new release of DICOM standard. The use of keywords rather than hex tags in the SR representation seems to be a popular idea, and using keywords makes things less awful for AI  implementers. SRs rarely, if ever, contain private data elements, very rarely have new data elements, and do not contain repeating groups like overlays. The supplement addresses using business names for private data elements and new data elements in the unlikely event that they are needed. </para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>6</para>
                        </td>
                        <td colspan="1">
                            <para>There is no need for the value (of a data element or an SR content item) to always being a JSON Array, when it is  a leaf node and the value is a single JSON String representing a text value or a coded value Business Name. A single value is allowed instead, for both top level data set Attributes and for SR Content Items. This very common simplification is important enough to deviate from PS3.18 Annex F.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>7</para>
                        </td>
                        <td colspan="1">
                            <para>Regarding the IMAGE positional argument: in the situations where multiple items can be present, null will be used for those that are missing. "Trailing unused values may be elided but intervening values are required to be null if there is no value, in order to preserve the positional order".</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>8</para>
                        </td>
                        <td colspan="1">
                            <para>In the example, there are some Values entries missing in header attributes. This is intentional, since that is how PS3.18 Annex F (existing JSON) encodes Type 2 (empty) Attributes.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>9</para>
                        </td>
                        <td colspan="1">
                            <para>In the example, in the Image Library, there are a lot of nested brackets and parentheses. That's because of the level of nesting of child content items and how they are encoded as objects in arrays and the additional level of arrays required to handle sibling content items with non-unique concept names.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>10</para>
                        </td>
                        <td colspan="1">
                            <para>The result content file is documented before the business names file, even though the former depends on the latter, since the design and structure of the result content file is of more interest to the reader and the business names file is more administrative and routine.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>11</para>
                        </td>
                        <td colspan="1">
                            <para>Need restrictions on Business Name Format, and a means of signaling special reserved words.</para>
                            <para>Use underscore '_' as a special first character for reserved business names, rather than using '@' as in JSON-LD and Java, or '$' as used in JSON Schema, to avid confusion with those other standards, and because of the implications for dot notation for paths in languages like JavaScript and Python). Underscore '_' seems to be sufficient and the least risky.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>12</para>
                        </td>
                        <td colspan="1">
                            <para>Allow '"StudyDate": null' and/or '"StudyDate": ""' instead of '"StudyDate": {}' for zero length Attributes.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">13</td>
                        <td colspan="1">
                            <para>Allow standard defined keywords in place of UIDs such as SOP Class UIDs. Created a CP to add these to PS3.6. No mechanism is provided to defined UIDs in the business name files. This is intentional since the use of private SOP Classes is not encouraged.</para>
                            <para>E.g., instead of: </para>
                            <programlisting><![CDATA[
    "SOPClassUID": "1.2.840.10008.5.1.4.1.1.88.22"
]]></programlisting>
                            <para>one can write:</para>
                            <programlisting><![CDATA[
    "SOPClassUID": "EnhancedSRStorageSOPClass"
]]></programlisting>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>14</para>
                        </td>
                        <td colspan="1">
                            <para>Positional dependencies are not used, all attributes of content items are identified by reserved words instead.</para>
                            <para>E.g., for coordinates:</para>
                            <programlisting>{
    "_gtype": "POLYLINE",
    "_coord2d": [172.83535766601562,270.0640869140625,133.79888916015625,343.0453186035156]
}</programlisting>
                            <para>These attributes are within an object to allow for children (in 2D SCOORD case there is always an IMAGE child), and other parameters like "_fiducial" (Fiducial UID, optional) and "_for" (Referenced Frame of Reference UID, always required for SCOORD3D.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">15</td>
                        <td colspan="1">
                            <para>"Anonymous" content items (those with no concept name to use as a business name) are potentially confusing,
                                however the standard for the underlying SR infrastructure allows for these
                                and many templates (like TID 1500 sub-templates) use them, so they are something the JSON representation has to support.
                                Rather than using an empty quoted string ("") where the business name for the concept name (JSON key) would go, a reserved word "_unnamed" is used,
                                since this allows addressing of nested content items from languages like JavaScript using the dot "." syntax.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>16</para>
                        </td>
                        <td colspan="1">
                            <para>Though some people have expressed a preference for more full names rather than abbreviations for content item or business name annotations, others prefer the opposite. Since this is a relatively arbitrary decision, and  implementers will have to learn the keywords and syntax anyway, abbreviations are used for compactness. For example, "_csd" instead of "_CodingSchemeDesignator", and "_ref" instead of "_ReferencedContentItemIdentifier".</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>17</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>Standard default business names (i.e., a PS3.6-like keyword) will be defined in a new Annex to PS3.16 added by a new CP that will list
                                official business names for all codes used in DICOM, and which will include a column describing the templates and context groups
                                the concept is used in, in order to simplify creating business name files that are subsets.
                                This table will be generated by automated tooling so that it can be updated with each release of the standard.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>18</para>
                        </td>
                        <td colspan="1">
                            <para>Modifications to TID 1500 to relax requirements to provide a Language, Procedure Reported, an empty section (CONTAINER) for the Image Library, and both Tracking Identifier and Unique Identifier,
                                all of which complicate the "simplest" example, have been proposed in a separate CP. This supplement will track the outcome of that CP in its examples.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>19</para>
                        </td>
                        <td colspan="1">
                            <para>Allow JSON Number as well as String for DS NUM (to be consistent with CP 1861).</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>20</para>
                        </td>
                        <td colspan="1">
                            <para>Experimental media types for the transformed JSON content and business names file are defined. Web service extensions are future work but the potential behavior of a WADO-RS request for an SR in these media types is noted. The generic application/json is not used, because the use of application/dicom+json and application/dicom+xml for the PS3.18 metadata (and successful IANA registration of these) have established the precedent of using application-specific rather than generic types. For background, see the HL7 discussion <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://wiki.hl7.org/index.php?title=Media-types_for_various_message_formats">https://wiki.hl7.org/index.php?title=Media-types_for_various_message_formats</link>and IETF XML discussion <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.rfc-editor.org/rfc/rfc3023.txt">http://www.rfc-editor.org/rfc/rfc3023.txt</link>.</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>21</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>No explicit Value Type and/or Relationship Type annotations are provided for cases where either there is no Business Name for the Concept Name (anonymous Content items, often used for IMAGE), or there is the potential for ambiguity (e.g., same Business Name used with two different Value Type and/or Relationship Type). Ideally,  implementers would not need to be bothered by relationships.</para>
                            <para>So far these have not been needed. In the case of anonymous SCOORD content items, SELECTED FROM and INFERRED FROM relationships with child images and parent TEXT, CODE or NUM content items can be assumed due to IOD-specified relationship constraints. </para>
                            <para>Different business names for the same code used as the concept name for different value or relationship type scenarios, can also be used when necessary.</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>22</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>No "include" mechanism is provided to reference business name files from the content file, since absolute or relative links may go stale, and are not be consistent with the general expectation that DICOM objects are portable and do not depend on any particular location and are identified by UIDs, not names or URLs. Association of the files is thought to be an architectural issue that should be deferred until DICOMweb APIs specific to JSON SR handling are defined.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>23</para>
                        </td>
                        <td colspan="1">
                            <para>Business names cannot be defined in the content file and have to be in a separate file, to avoid clutter, enable re-use and avoid two ways to do the same thing.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>24</para>
                        </td>
                        <td colspan="1">
                            <para>There is no explicit support for (or dependence on) JSON-LD (<link xl:href="https://en.wikipedia.org/wiki/JSON-LD"/>) for business names. There is currently no prohibition on there being a separate JSON-LD context file present that describes the business names used. A different reserved word indicator than the "@" of JSON-LD is used in the results JSON file and the business names file. </para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>25</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>Use of more than one business name definitions file for the same results file is not explicitly prohibited (e.g., to have a standard list of data elements, a separate standard list of codes, and a set of local or instance specific customizations). For it to be robust, rules would be needed for precedence or to forbid collisions, but for the time being that is not addressed. Even with a source of "standard" business names, these can be copied into the one business name file expected, rather than "referenced" and encoded separately from the implementer's own business names.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>26</para>
                        </td>
                        <td colspan="1">
                            <para>Name spaces are not used. Collisions are not an issue because the scope of uniqueness is the pair of encoded JSON file and business name JSON file, and so the same business name can be used for another pair with a different meaning.</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>27</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>No generic solution for including unrecognized private Attributes attached to Content Items is provided in the Content Item Annotations description. Currently these would be omitted, since the Content Tree is not handled the same was as top level data set data elements.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>28</para>
                        </td>
                        <td colspan="1">
                            <para>The current approach to nesting of the entire data set follows the example in PS3.18 Annex F.4, which shows multiple query results, each of which is an object in the top level array. While this Annex F complication could be elided, it would reduce the re-usability of parsers/generators designed to handle both.</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>29</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>For private data elements, creator element insertion is explicit/manual, i.e., the creator element needs to be included, to be consistent with current PS3.18 Annex F representation.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>30</para>
                        </td>
                        <td colspan="1">
                            <para>A machine readable formalization of the JSON syntax that is permitted is defined in JSON Schemas. Is it difficult to write a JSON Schema that defines only the structural rules without being dependent on the data element keywords or coded concept business names, but an attempt has been made. DICOM SR template-specific structure and instance-specific business names can also be checked with specific JSON schemas (e.g., for TID 1500). No alternative to JSON Schema for formal representation of the rules has been identified.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>31</para>
                        </td>
                        <td colspan="1">
                            <para>Business names are not used for header Code Sequence Items in Code Sequence Attributes in the top level Data Set. They are encoded in the traditional manner, i.e., as individual DICOM Attributes, (a) to align the DICOM Attribute header as closely with PS3.18 Annex F as possible, and (b) since very few, if any, Code Sequence Items are used in the headers of DICOM Structured Reporting SOP Classes, and (c) the potential nesting of other data elements within code sequence items, such as modifiers makes a hybrid structure complicated.</para>
                        </td>
                    </tr>
                    <tr valign="top">
                        <td rowspan="1" colspan="1">
                            <para>32</para>
                        </td>
                        <td rowspan="1" colspan="1">
                            <para>The PNAME Value Type JSON encoding is decomposed into its component groups, as is done for the DICOM Attribute PN VR per the current PS3.18 Annex F description.</para>
                            <para>The PNAME encoding is not split into separate name components (e.g., family name) as is done for the PS3.19 XML representation, following the current PS3.18 Annex F which did not do that, but rather retained the conventional PN caret '^' delimiters.</para>
                            <para>There is no optimization for the common pattern of alphabetic only being sent as a single string value rather than annotation properties.</para>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="1">
                            <para>33</para>
                        </td>
                        <td colspan="1">
                            <para>WG 23 consensus is for Trial Use phase for up to 12 months</para>
                        </td>
                    </tr>
                </tbody>
            </informaltable>
        </section>
    </chapter>

    <chapter>
        <title>Scope and Field of Application</title>
        <para>This Supplement describes a JSON representation of DICOM Structured Reports, similar to the PS3.18 JSON representation, to allow  implementers to encode image-derived results. Patterns are defined for transformation of measurement and annotation information for use-cases related to the reporting of artificial intelligence (AI), machine learning (ML) and quantitative imaging (QI) results. The approach is applicable not only to export of AI/ML results but also to encoding of truth data for AI/ML training, testing and validation.</para>
        <para>JSON has emerged as the preferred representation for results from machine learning algorithms amongst  implementers who are not familiar with the DICOM Standard. Such results typically lack the composite context information required in a managed clinical environment (such as patient and study identity information), as well as references to the DICOM images used as input, needed to store, distribute and render the results on an image viewing system. DICOM Structured Reports (SR) are the most common form of semantically meaningful annotation created and distributed in an interoperable manner for clinical use. Accordingly, this supplement describes a mapping between a JSON representation of the measurement and annotation result payload expected from an AI system, and the traditional binary DICOM SR encoding of the same information.</para>
        <para>DICOM PS3.16 defines templates for different applications of SR. The TID 1500 Measurement Report template describes a generic pattern that is suitable for encoding AI/ML results as well as other quantitative and qualitative (categorical or descriptive) results. The JSON representation in this Supplement is exemplified using TID 1500, but the representation supports full semantic fidelity round-trip encoding of any DICOM SR instance, regardless of the template.</para>
        <para>Using an appropriate tool, a complete and compliant binary SR can be created automatically from the JSON, with the subtleties of DICOM encoding hidden from the user. The JSON representation may be useful beyond the primary AI/ML application that motivated the work. It is not expected that the JSON representation will be used as the persistent form, but rather that the existing DICOM binary object storage infrastructure will be used.</para>
        <para>A multi-step process for transformation is envisaged. First, the result payload itself may be encoded in JSON; this is limited to the minimal necessary information to describe the result itself, for simplicity and ease of use by AI/ML algorithm  implementers. Then, this result JSON is merged with the necessary JSON representation of the composite context and other mandatory, or relevant optional, SR content (such as UIDs, image libraries, hierarchical identification and report status management information), which, when transformed, would result in a valid SR IOD with template-compliant content. Finally, the JSON is transformed into the traditional binary DICOM SR representation for transport, storage and management in an interoperable form. An Informative Annex describing such a "successive refinement" approach is included.</para>
        <para>The scope of this Supplement is limited to describing the representation and the transformation. It is anticipated that future Supplements will extend the DICOMweb services to support transformation of JSON DICOM SR into binary DICOM SR, and to retrieve transformed content, e.g., by leveraging the existing STOW-RS and WADO-RS mechanisms.</para>
        <para>The JSON representation leverages the "business name" concept from HL7 Green CDA, such that short meaningful strings can be used in the JSON for coded tuples for concept names and values, as well as for DICOM Attributes in the top level Data Set. The business names are defined in separate, potentially reusable, JSON files, which may be user- or organization-supplied or automatically generated. </para>
        <para>Traditionally, DICOM SR makes extensive use of coded terminology to maximize semantic interoperability and to avoid reinventing existing content. However, choosing and encoding codes can be burdensome to  implementers. The use of DICOM Data Element tags rather than keywords can be similarly confusing. Accordingly, "business names" are used as a substitute for the more arcane codes and tags that are normally used. For example, "StudyDate" may be used in the JSON representation in place of (0008,0020), and "Length" may be used as opposed to (410668003, SCT, "Length"). The business names to be used can either by supplied by the creator of the JSON representation, some other organization or authority, or selected from a standard list of keywords from the DICOM Data Dictionary (PS3.6) or business names for concepts provided in the DICOM Content Mapping Resource (DCMR) (PS3.16). The business names are not qualified by any prefix or namespace in the interests of terseness and
            simplicity. The scope of uniqueness of the business names only has to encompass the encoded JSON file and its accompanying business names JSON file. That said, business names may be as complex a string as the user cares to create, and any current or future convention for pseudo-name space mechanisms can be utilized if desired. </para>
        <para>The choice of JSON representation leverages the existing PS3.18 Annex F JSON representation of ordinary DICOM objects at the data element level, with the use of keywords in place of data element tags for clarity and simplicity. The DICOM SR content is divided into two components, the data elements representing the SR Content Tree, which are encoded as if each node (content item) of the Content Tree were a distinct entity, and the remainder of the DICOM data elements that are normally encoded in the top level DICOM data set.</para>
        <para>When parsing the JSON representation, all DICOM keywords that are recognized and that are not part of the SR Content Tree are extracted, then all remaining content is examined for matches with the defined business names. To the extent possible, the relationships and value types that are defined for the DICOM binary SR representation are elided from the JSON representation, and either defined with the business names, or inferred from context. For example, whether a coded concept has a CONTAINS or HAS CONCEPT MOD relationship with its parent CONTAINER value type is not something an AI/ML  implementer is likely to be concerned about, and requires a level of DICOM expertise that they are unlikely to have. Accordingly, a coded concept that is always used as a concept modifier can have this declared in the business name descriptor rather than repeating the information in every use in the JSON payload. Similarly, some concepts always have a predictable value type (e.g., of CODE
            or TEXT or NUM) that can be declared in the business name file. Occasionally, SR content items have no required concept name (e.g., IMAGE references within SCOORD) but such patterns can be detected and inferred. When ambiguity is possible, then the JSON representation can be made explicit to resolve it (e.g., to distinguish TEXT from CODE value types when either may be used and there is ambiguity as to whether the value should be used literally or looked up as a business name for the code value).</para>
        <para>At this time, no similar standard XML representation is defined, though the concepts are equally applicable, theoretically. The consensus in the AI/ML community at this time seems to be to focus on JSON. Several tool-kits have their own XML schemas and representations for DICOM SR, but there has been no significant effort to harmonize or standardize these, and the outstanding work item to do so (2012-11B) has been withdrawn after many years of inaction.</para>

        <para>This Supplement defines a new Part, PS3.23, to contain the alternative representation, and includes the existing Attribute level XML and JSON encodings factored out of PS3.19 and PS3.18.</para>
    </chapter>
    
    <chapter label="XXXX" status="1" xml:id="chapter_XXXX">
        <title>Transformation of JSON Representation of Structured Reports (Informative)</title>
        
        <informaltable rules="all" frame="box">
            <tr>
                <td>
                    <para><emphasis role="italic">Add new Informative Annex to PS3.17 as follows:</emphasis></para>
                </td>
            </tr>
        </informaltable>
        
        <section xml:id="sect_XXXX.1" label="XXXX.1" status="2">
            <title>Background</title>
            <para>A reliable and interoperable interchange framework for the communication of results requires not only that a means of encoding the result payload be defined, but that the result be accompanied by the necessary metadata to allow its management in a patient-related and workflow-related context, even when the result is detached from the system in which it is managed. Just as for DICOM images, this result metadata is defined according to the DICOM Information Model, and it is encoded in the corresponding Composite Instances that are the persistent, interchangeable representation of DICOM Structured Reports.</para>
            <para>However, it is recognized that result creation and rendering systems may be modular in their design,
                such that one component of a system may not be aware of, or need to be aware of, certain types of information.</para>
            <para>As a case in point, a machine-learning-based algorithm that generates a numerical result, such as probability of malignancy, may need no knowledge of a patient's identifying or descriptive metadata. Conversely, a result management system, to which the exact nature of the result payload is essentially opaque, needs the identifying metadata but may be agnostic to result payload structure and content that may be supplied by different algorithms.</para>
            <para>It is important to identify and communicate the meaning of results to provide context to the receiving/rendering systems in order for them to meaningfully record or render the results. Where appropriate, the results should be named/labeled and coded in the JSON by the a component that knows the meaning of or code associated with that result. The use of Business Names allows separation of the component that uses a concept from the component that provides the details of the concept in the Business Names File.</para>
            <para>Accordingly, the JSON representation of Structured Reports has been designed to allow for such modularization and division of responsibility for content generation.</para>
        </section>
        <section xml:id="sect_XXXX.2" label="XXXX.2" status="2">
            <title>Examples</title>
            <section xml:id="sect_XXXX.2.1" label="XXXX.2.1" status="3">
                <title>Example of Successive Refinement</title>
                <para>This Section describes an example of successive refinement of a relatively simple numerical payload with image-, lesion-, study-, and patient-related metadata.</para>
            <para><xref linkend="figure_XXXX.1-1" xrefstyle="select: label"/> illustrates an example of a pipeline that might used to take algorithm-generated result content in its most minimal form through several successive stages, adding the necessary metadata to generate a complete JSON representation of a valid DICOM Structured Report, which is then converted into its traditional binary representation and sent to an ordinary DICOM Storage SCP.</para>
            <note>
                <orderedlist>
                    <listitem>
                        <para>The JSON fragments illustrated in this example are not in their own right valid DICOM SR Instances. Each fragment is merely an intermediate artifact that may be used to communicate between successive steps in a manner that is not defined by the standard, but which may be convenient for implementers. Only the final complete representation with its entire Content Tree and Composite Context is a valid representation that may be transcoded into a valid SOP Instance conforming to the corresponding IOD for the SR Storage SOP Class used.</para>
                    </listitem>
                    <listitem>
                        <para>The components in this pipeline need not be physically co-located or on-premise. E.g. the algorithm could execute on a cloud-based computing resource using anonymized data, and the context information be managed and added on-premise when the results were returned.</para>
                    </listitem>
                </orderedlist>
            </note>
            <para>
                <figure label="XXXX.1-1" pgwide="1" xml:id="figure_XXXX.1-1">
                    <title>Example of Successive Refinement of JSON Payload to Complete SR</title>
                    <mediaobject>
                        <imageobject>
                            <!-- Get rid of "just" in box, use "lesion size/measurement" rather than "number" -->
                            <imagedata fileref="sup219_figures/sup219_PS3.17_XXXX.1-1.png" scalefit="1" width="100%"/>
                            <!--<imagedata fileref="figures/PS3.17_XXXX.1-1.svg"/>-->
                        </imageobject>
                    </mediaobject>
                </figure>
            </para>
            <para>
                <figure label="XXXX.1-2" pgwide="1" xml:id="figure_XXXX.1-2">
                    <title>Example of Single Linear Measurement to Encode in SR</title>
                    <mediaobject>
                        <imageobject>
                            <imagedata fileref="sup219_figures/sup219_PS3.17_XXXX.1-2.png" scalefit="1" width="100%"/>
                            <!--<imagedata fileref="figures/PS3.17_XXXX.1-2.svg"/>-->
                        </imageobject>
                    </mediaobject>
                </figure>
            </para>
            <para>The AI Algorithm in this example may produce a very simple numeric result, such as the single linear dimension of a tumor illustrated in <xref linkend="figure_XXXX.1-2" xrefstyle="select: label"/>.</para>
            <programlisting><![CDATA[
                      "Length": [
                        {
                          "_units": "mm"
                        },
                        "97.08595644"
                      ]
]]></programlisting>
            <para>This measurement is linked to the image coordinates from which it is derived, as follows:</para>
            <programlisting><![CDATA[
                    {
                      "Length": [
                        {
                          "_units": "mm"
                        },
                        "97.08595644",
                        [
                          {
                            "Path": [
                              {
                                "_gtype": "POLYLINE",
                                "_coord2d": [
                                  186.4132537841797,
                                  274.5900573730469,
                                  89.10497283935547,
                                  374.7270812988281
                                ]
                              },
                              [
                                {
                                  "SourceOfMeasurement": [
                                    {
                                      "_class": "CTImageStorage",
                                      "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                                    }
                                  ]
                                }
                              ]
                            ]
                          }
                        ]
                      ]
                    }
]]></programlisting>
            <note>
                <orderedlist>
                    <listitem>
                        <para>In reality, many machine learning and quantitative algorithms operate on image pixel data that has been extracted from a DICOM Composite Image SOP Instance. Hence the algorithm software may be unaware of the SOP Instance UID and SOP Class UID of the image. It is expected that, at the very least, such algorithms will be wrapped by a management system that maintains the correspondence between the DICOM UIDs and the image pixel data used by the algorithm.</para>
                    </listitem>
                    <listitem>
                        <para>Such algorithms may make use of coordinate representations that do not exactly match the DICOM sub-pixel resolution 2D or patient-relative, volume-relative or slide-relative 3D coordinate systems. It is expected that such algorithms will be wrapped by a management system that transforms the coordinates into the standard form as necessary.</para>
                    </listitem>
                    <listitem>
                        <para>In this example, the AI algorithm is producing only content encoded according to a nested content template, which is intended to be later embedded in a more complete root template such as TID 1500. As such, the root content item that it produces starts at the MeasurementGroup (ROI) level, not the ImagingMeasurementReport level.</para>
                    </listitem>
                    <listitem>
                        <para>There is no lesion tracking information provided, since this particular hypothetical algorithm is assumed to be unaware of longitudinal temporal relationships.</para>
                    </listitem>
                </orderedlist>
                
            </note>
            <para>Next, the Lesion Manager adds longitudinal lesion tracking information, a finding and a finding site, since it has access to out-of-band information related to lesions measured at different time points:</para>
            <programlisting><![CDATA[
          "ImagingMeasurements": [
            [
              {
                "MeasurementGroup": [
                  [
                    {
                      "TrackingIdentifier": "5b6eb4301d3175942d29985a3d1b142f"
                    },
                    {
                      "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.48"
                    },
                    {
                      "Finding": "Neoplasm"
                    },
                    {
                      "FindingSite": "Liver"
                    },
                    {
                      "Length": [
                        {
                          "_units": "mm"
                        },
                        "97.08595644",
                        [
                          {
                            "Path": [
                              {
                                "_gtype": "POLYLINE",
                                "_coord2d": [
                                  186.4132537841797,
                                  274.5900573730469,
                                  89.10497283935547,
                                  374.7270812988281
                                ]
                              },
                              [
                                {
                                  "SourceOfMeasurement": [
                                    {
                                      "_class": "CTImageStorage",
                                      "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                                    }
                                  ]
                                }
                              ]
                            ]
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
]]></programlisting>
            
            <para>Next, a DICOM-Image Aware System wraps the nested MeasurementGroup level content into a root-template, such as an ImagingMeasurementReport, and adds contextual information that includes:</para>
            <itemizedlist>
                <listitem>
                    <para>identification of the template used</para>
                </listitem>
                <listitem>
                    <para>language information</para>
                </listitem>
                <listitem>
                    <para>Image Library entries corresponding to the referenced images</para>
                </listitem>
                <listitem>
                    <para>information about the Procedure Reported</para>
                </listitem>
                <listitem>
                    <para>Person Observer Context</para>
                </listitem>
            </itemizedlist>
            <programlisting><![CDATA[
    "ImagingMeasurementReport": [
      {
        "_tmr": "DCMR",
        "_tid": "1500"
      },
      [
        {
          "LanguageOfContentItemAndDescendants": [
            "English",
            [
              {
                "CountryOfLanguage": "UnitedStates"
              }
            ]
          ]
        },
        {
          "PersonObserverName": [
              {"_alphabetic": "adventurous_cod"}
          ]
        },
        {
          "ProcedureReported": "CTAbdomen"
        },
        {
          "ImageLibrary": [
            [
              {
                "ImageLibraryGroup": [
                  [
                    {
                      "SourceOfMeasurement": [
                        {
                          "_class": "CTImageStorage",
                          "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                        },
                        [
                          {
                            "Modality": "ComputedTomography"
                          },
                          {
                            "StudyDate": "19921113"
                          },
                          {
                            "StudyTime": "135823"
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
        },
        {
          "ImagingMeasurements": [
            [
              {
                "MeasurementGroup": [
                  [
                    {
                      "TrackingIdentifier": "5b6eb4301d3175942d29985a3d1b142f"
                    },
                    {
                      "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.48"
                    },
                    {
                      "Finding": "Neoplasm"
                    },
                    {
                      "FindingSite": "Liver"
                    },
                    {
                      "Length": [
                        {
                          "_units": "mm"
                        },
                        "97.08595644",
                        [
                          {
                            "Path": [
                              {
                                "_gtype": "POLYLINE",
                                "_coord2d": [
                                  186.4132537841797,
                                  274.5900573730469,
                                  89.10497283935547,
                                  374.7270812988281
                                ]
                              },
                              [
                                {
                                  "SourceOfMeasurement": [
                                    {
                                      "_class": "CTImageStorage",
                                      "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                                    }
                                  ]
                                }
                              ]
                            ]
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
        }
      ]
    ]
]]></programlisting>
            <para>Finally, a Patient-Study Aware System takes the Structured Report Content Tree from the previous stage, and adds the necessary top-level DICOM Data Set Attributes to produce a valid DICOM SOP Instance compliant with the Enhanced SR Storage SOP Class, initially in its JSON Representation.</para>
            <para>This step includes adding such contextual information as:</para>
            <itemizedlist>
                <listitem>
                    <para>Patient identifying and descriptive metadata</para>
                </listitem>
                <listitem>
                    <para>Study identifying and descriptive metadata, including an appropriate StudyInstanceUID, such as that extracted from the referenced image(s)</para>
                </listitem>
                <listitem>
                    <para>Equipment identifying and descriptive metadata</para>
                </listitem>
                <listitem>
                    <para>new Series identifying and descriptive metadata, including an appropriate new SeriesInstanceUID</para>
                </listitem>
                <listitem>
                    <para>new Instance identifying and descriptive metadata, including an appropriate new SOPInstanceUID and an appropriate SR Storage SOP Class UID</para>
                </listitem>
                <listitem>
                    <para>additional DICOM Attributes and Values necessary to conform to the SR Storage SOP Class, including:</para>
                    <itemizedlist>
                        <listitem>
                            <para>additional Person Observer Context information in the AuthorObserverSequence</para>
                        </listitem>
                        <listitem>
                            <para>report status management information, such as the CompletionFlag and VerificationFlag</para>
                        </listitem>
                        <listitem>
                            <para>the evidence sequence(s) necessary to provide a full hierarchical UID-based route to the reference image content, to support a hierarchical rather than relational query (DIMSE C-FIND or QIDO-RS), such as the CurrentRequestedProcedureEvidenceSequence</para>
                        </listitem>
                    </itemizedlist>
                </listitem>
            </itemizedlist>
            <para>
                <programlisting><![CDATA[
[
  {
    "SOPClassUID": "EnhancedSRStorage",
    "SOPInstanceUID": "1.3.6.1.4.1.5962.1.1.0.0.0.1577387811.4220.48",
    "StudyDate": "19921113",
    "SeriesDate": null,
    "ContentDate": "20171127",
    "StudyTime": "3138",
    "ContentTime": "173004",
    "AccessionNumber": null,
    "Modality": "SR",
    "Manufacturer": "PixelMed",
    "InstitutionName": null,
    "ReferringPhysicianName": null,
    "StationName": "NONE",
    "StudyDescription": "Liver",
    "SeriesDescription": "Crowds Cure Cancer Annotation as Measurement Report",
    "ManufacturerModelName": "XSLT from annotations_expanded.csv",
    "ReferencedPerformedProcedureStepSequence": null,
    "PatientName": {
      "Value": [
        {
          "Alphabetic": "TCGA-BC-A10W"
        }
      ]
    },
    "PatientID": "TCGA-BC-A10W",
    "PatientBirthDate": null,
    "PatientSex": null,
    "DeviceSerialNumber": "9723613413261",
    "SoftwareVersions": "0.1",
    "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.268372221764133884771237226053",
    "SeriesInstanceUID": "1.3.6.1.4.1.5962.1.3.0.0.1577387811.4220.48",
    "StudyID": null,
    "SeriesNumber": "4578",
    "InstanceNumber": "1",
    "AuthorObserverSequence": {
      "Value": [
        {
          "InstitutionName": null,
          "InstitutionCodeSequence": null,
          "PersonIdentificationCodeSequence": null,
          "ObserverType": "PSN",
          "PersonName": {
            "Value": [
              {
                "Alphabetic": "adventurous_cod"
              }
            ]
          }
        }
      ]
    },
    "PerformedProcedureCodeSequence": null,
    "CurrentRequestedProcedureEvidenceSequence": {
      "Value": [
        {
          "ReferencedSeriesSequence": {
            "Value": [
              {
                "ReferencedSOPSequence": {
                  "Value": [
                    {
                      "ReferencedSOPClassUID": "CTImageStorage",
                      "ReferencedSOPInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                    }
                  ]
                },
                "SeriesInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.228008362642761312820335824744"
              }
            ]
          },
          "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.268372221764133884771237226053"
        }
      ]
    },
    "CompletionFlag": "COMPLETE",
    "VerificationFlag": "UNVERIFIED",
    "ImagingMeasurementReport": [
      {
        "_tmr": "DCMR",
        "_tid": "1500"
      },
      [
        {
          "LanguageOfContentItemAndDescendants": [
            "English",
            [
              {
                "CountryOfLanguage": "UnitedStates"
              }
            ]
          ]
        },
        {
          "PersonObserverName": [
              {"_alphabetic": "adventurous_cod"}
          ]
        },
        {
          "ProcedureReported": "CTAbdomen"
        },
        {
          "ImageLibrary": [
            [
              {
                "ImageLibraryGroup": [
                  [
                    {
                      "SourceOfMeasurement": [
                        {
                          "_class": "CTImageStorage",
                          "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                        },
                        [
                          {
                            "Modality": "ComputedTomography"
                          },
                          {
                            "StudyDate": "19921113"
                          },
                          {
                            "StudyTime": "135823"
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
        },
        {
          "ImagingMeasurements": [
            [
              {
                "MeasurementGroup": [
                  [
                    {
                      "TrackingIdentifier": "5b6eb4301d3175942d29985a3d1b142f"
                    },
                    {
                      "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.48"
                    },
                    {
                      "Finding": "Neoplasm"
                    },
                    {
                      "FindingSite": "Liver"
                    },
                    {
                      "Length": [
                        {
                          "_units": "mm"
                        },
                        "97.08595644",
                        [
                          {
                            "Path": [
                              {
                                "_gtype": "POLYLINE",
                                "_coord2d": [
                                  186.4132537841797,
                                  274.5900573730469,
                                  89.10497283935547,
                                  374.7270812988281
                                ]
                              },
                              [
                                {
                                  "SourceOfMeasurement": [
                                    {
                                      "_class": "CTImageStorage",
                                      "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                                    }
                                  ]
                                }
                              ]
                            ]
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
        }
      ]
    ]
  }
]
]]></programlisting>
            </para>
            <para>The Patient-Study Aware System then transforms the JSON representation into the traditional binary DICOM SR representation and transmits the persistent object to the PACS using either a DIMSE C-STORE Operation or a DICOMweb Store (STOW-RS) Transaction.</para>
            <para>For clarity, the necessary Business Names Files accompanying the communication between each stage of the pipeline have been elided from the example above. Whether particular Business Names are assumed in the hypothetical transactions between successive steps or are explicitly communicated in Business Names Files is not defined. For the sake of argument, the simplest Business Names File to support the initial communication between the AI Algorithm and the Lesion Manager would be as follows:</para>
            <para>
                <programlisting><![CDATA[
[
  {
    "mm": {
      "_cv": "mm",
      "_csd": "UCUM",
      "_cm": "mm"
    }
  },
  {
    "MeasurementGroup": {
      "_cv": "125007",
      "_csd": "DCM",
      "_cm": "Measurement Group",
      "_vt": [
        "CONTAINER"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  },
  {
    "Length": {
      "_cv": "410668003",
      "_csd": "SCT",
      "_cm": "Length",
      "_vt": [
        "NUM"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  }
]
]]></programlisting>
            </para>
            <para>For the last step in this example, conversion by a separate tool from a complete JSON representation to the binary DICOM form of the Structured Report, the complete Business Names File (as defined for the similar example in PS3.23 Section B.3.4.2.4), as well as a dictionary of DICOM Standard Data Element Keywords, would be required,</para>
        </section>
        </section>
        <section xml:id="sect_XXXX.3" label="XXXX.3" status="2">
            <title>Frequently Asked Questions about JSON SR Encoding</title>
            <variablelist>
                <varlistentry>
                    <term>Why are content items nested in a JSON Array?</term>
                    <listitem>
                        <para>DICOM SR templates may specify that the order of content items is significant, and only JSON Arrays preserve order; the fields of a JSON Object are specifically unordered.</para>
                        <para>I.e., though this suggested alternative would be seem to be simpler:</para>
                        <programlisting><![CDATA[
                  {
                    "TrackingIdentifier": "5b6eb4301d3175942d29985a3d0fbb00",
                    "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.1",
                    "FindingSite": "Liver"
                  }
]]></programlisting>
                        <para>and is valid JSON, it would not preserve the order of the content items, so this is the structure required by the DICOM Standard:</para>
                        <programlisting><![CDATA[
                  [
                    { "TrackingIdentifier": "5b6eb4301d3175942d29985a3d0fbb00" },
                    { "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.1" },
                    { "FindingSite": "Liver" }
                  ]
]]></programlisting>
                        <para>Also, DICOM SR allows for multiple sibling content items with the same concept name, whereas JSON does not permit the use of the same name for name-value pairs within a JSON Object.</para>
                        <para>I.e., though this suggested alternative would be seem to be simpler:</para>
                        <programlisting><![CDATA[
                  {
                    "FindingSite": "LeftKidney",
                    "FindingSite": "RightKidney"
                  }]]></programlisting>
                        <para>it is not valid JSON, so this is the structure required by the DICOM Standard:</para>
                        <programlisting><![CDATA[
                  [
                    { "FindingSite": "LeftKidney" },
                    { "FindingSite": "RightKidney" },
                  ]
]]></programlisting>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Why is each content item nested in a JSON Object?</term>
                    <listitem>
                        <para>JSON Array contents are values, not name-value pairs, so as a consequence of using JSON Arrays to preserve order, each content item name-value pair needs to be nested in an object.</para>
                        <para>I.e., though this suggested alternative would be seem to be simpler:</para>
                        <programlisting><![CDATA[
                  [
                    "FindingSite": "Liver"
                  ]
]]></programlisting>
                        <para>it is not valid JSON, so this is the required structure:</para>
                        <programlisting><![CDATA[
                  [
                    { "FindingSite": "Liver" }
                  ]
]]></programlisting>
                    </listitem>
                </varlistentry>
            </variablelist>
        </section>
        
    </chapter>
    
    <chapter label="" status="1" xml:id="chapter_PS3.23_CoverPage">
        <title>PS3.23</title>
        <subtitle>DICOM PS3.23 20xx - Alternative Representations</subtitle>
        <info>
            <author>
                <orgname>DICOM Standards Committee</orgname>
            </author>
            <copyright>
                <year>2019</year>
                <holder>NEMA</holder>
            </copyright>
        </info>
    </chapter>
    <chapter label="" status="1" xml:id="chapter_Notice">
        <title>Notice and Disclaimer</title>
        <para>The information in this publication was considered technically sound by the consensus of persons engaged in the development and approval of the document at the time it was developed. Consensus does not necessarily mean that there is unanimous agreement among every person participating in the development of this document.</para>
        <para>NEMA standards and guideline publications, of which the document contained herein is one, are developed through a voluntary consensus standards development process. This process brings together volunteers and/or seeks out the views of persons who have an interest in the topic covered by this publication. While NEMA administers the process and establishes rules to promote fairness in the development of consensus, it does not write the document and it does not independently test, evaluate, or verify the accuracy or completeness of any information or the soundness of any judgments contained in its standards and guideline publications.</para>
        <para>NEMA disclaims liability for any personal injury, property, or other damages of any nature whatsoever, whether special, indirect, consequential, or compensatory, directly or indirectly resulting from the publication, use of, application, or reliance on this document. NEMA disclaims and makes no guaranty or warranty, expressed or implied, as to the accuracy or completeness of any information published herein, and disclaims and makes no warranty that the information in this document will fulfill any of your particular purposes or needs. NEMA does not undertake to guarantee the performance of any individual manufacturer or seller's products or services by virtue of this standard or guide.</para>
        <para>In publishing and making this document available, NEMA is not undertaking to render professional or other services for or on behalf of any person or entity, nor is NEMA undertaking to perform any duty owed by any person or entity to someone else. Anyone using this document should rely on his or her own independent judgment or, as appropriate, seek the advice of a competent professional in determining the exercise of reasonable care in any given circumstances. Information and other standards on the topic covered by this publication may be available from other sources, which the user may wish to consult for additional views or information not covered by this publication.</para>
        <para>NEMA has no power, nor does it undertake to police or enforce compliance with the contents of this document. NEMA does not certify, test, or inspect products, designs, or installations for safety or health purposes. Any certification or other statement of compliance with any health or safety-related information in this document shall not be attributable to NEMA and is solely the responsibility of the certifier or maker of the statement.</para>
    </chapter>
    <chapter label="" status="1" xml:id="chapter_Foreword">
        <title>Foreword</title>
        <para>This DICOM Standard was developed according to the procedures of the DICOM Standards Committee.</para>
        <para>The DICOM Standard is structured as a multi-part document using the guidelines established in <xref linkend="biblio_ISODirectives3"/>.</para>
    </chapter>
    <chapter xml:id="chapter_1" label="1" status="1">
        <title>Scope and Field of Application</title>
        <para>This part of the DICOM Standard describes representations of DICOM encoded instances and messages that are alternatives to the traditional binary encoding defined in PS3.5.</para>
        <para>It includes:</para>
        <itemizedlist>
            <listitem>
                <para>encoding of DICOM instances and messages at the Attribute level in XML,</para>
            </listitem>
            <listitem>
                <para>encoding of DICOM instances and messages at the Attribute level in JSON, and</para>
            </listitem>
            <listitem>
                <para>encoding of DICOM Structured Reports at the Content Item level in JSON.</para>
            </listitem>
        </itemizedlist>
    </chapter>
    <chapter xml:id="chapter_2" label="2" status="1">
        <title>Normative and Informative References</title>
        <para>The following standards contain provisions that, through reference in this text, constitute provisions of this Standard. At the time of publication, the editions indicated were valid. All standards are subject to revision, and parties to agreements based on this Standard are encouraged to investigate the possibilities of applying the most recent editions of the standards indicated below.</para>
        <bibliography>
            <bibliodiv label="2.1" status="2" xml:id="sect_2.1">
                <title>International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC)</title>

                <biblioentry xml:id="biblio_ISODirectives3">
                    <abbrev>ISO/IEC Directives, Part 3</abbrev>
                    <author>
                        <orgname>ISO/IEC</orgname>
                    </author>
                    <date>1989</date>
                    <title>Drafting and presentation of International Standards</title>
                </biblioentry>
            </bibliodiv>

            <bibliodiv label="2.2" status="2" xml:id="sect_2.2">
                <title>Internet Engineering Task Force (IETF) and Internet Assigned Names Authority (IANA)</title>

                <biblioentry xml:id="biblio_RFC_4627">
                    <abbrev>RFC4627</abbrev>
                    <author>
                        <orgname>IETF</orgname>
                    </author>
                    <date>July 2006</date>
                    <title>The application/json Media Type for JavaScript Object Notation (JSON)</title>
                    <bibliosource>
                        <link xl:href="http://tools.ietf.org/html/rfc4627"/>
                    </bibliosource>
                </biblioentry>
            </bibliodiv>
            <bibliodiv label="2.3" status="2" xml:id="sect_2.3">
                <title>Other References</title>
                <biblioentry xml:id="biblio_XML">
                    <abbrev>XML</abbrev>
                    <author>
                        <orgname>W3C</orgname>
                    </author>
                    <date>2006/09/29</date>
                    <title>Extensible Markup Language (XML) 1.1</title>
                    <bibliosource>
                        <link xl:href="https://www.w3.org/TR/2006/REC-xml11-20060816/"/>
                    </bibliosource>
                </biblioentry>
            </bibliodiv>

        </bibliography>
    </chapter>
    <chapter xml:id="chapter_3" label="3" status="1">
        <title>Definitions</title>
        <para>For the purposes of this Standard the following definitions apply.</para>
        <section xml:id="sect_3.1" label="3.1" status="2">
            <title>Codes and Controlled Terminology Definitions:</title>
            <para>The following definitions are commonly used in this Part of the DICOM Standard:</para>
            <variablelist>
                <varlistentry>
                    <term>Coding Schemes</term>
                    <listitem>
                        <para>Dictionaries (lexicons) of concepts (terms) with assigned codes and well defined meanings.</para>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Content Item</term>
                    <listitem>
                        <para>A node in the Content Tree of a DICOM SR document, consisting of either a container with a coded Concept Name, or a name-value pair with a coded Concept Name and a Concept Value.</para>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Content Tree</term>
                    <listitem>
                        <para>The tree of Content Items of a DICOM SR document.</para>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Context Group</term>
                    <listitem>
                        <para>A set of coded concepts defined by a Mapping Resource forming a set appropriate to use in a particular context.</para>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Context ID (CID)</term>
                    <listitem>
                        <para>Identifier of a Context Group.</para>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Template</term>
                    <listitem>
                        <para>A pattern that describes the Content Items, Value Types, Relationship Types and Value Sets that may be used in part of a Structured Report Content Tree, or in other Content Item constructs, such as Acquisition Context or Protocol Context. Analogous to a Module of an Information Object Definition.</para>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Template ID (TID)</term>
                    <listitem>
                        <para>Identifier of a Template.</para>
                    </listitem>
                </varlistentry>
            </variablelist>
        </section>
        <section xml:id="sect_3.2" label="3.1" status="2">
            <title>Representation Conversion Definitions:</title>
            <para>The following definitions are commonly used in this Part of the DICOM Standard:</para>
            <variablelist>
                <varlistentry>
                    <term>Business Name</term>
                    <listitem>
                        <para>Identifier for a Concept or Attribute that corresponds to a business requirement for information exchange.</para>
                        <note>
                            <para>See also a similar definition in PS3.20 in the context of HL7 CDA templates, and discussion in PS3.20 Section 5.2.1, which includes the statement that "the use of readable and intuitive Business Names provides a method of direct access to insert data that is specific to each clinical report instance".</para>
                        </note>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>Composite Context</term>
                    <listitem>
                        <para>Those Attributes of higher-level Entities in the Information Model that provide the Context for newly created lower-level Entities, and which have the same values as other lower-level Entities have for the same higher-level Entities.</para>
                        <note>
                            <para>Typically the Patient and Study Composite Context are merged with (shared by) new Series and Instance level information when a new Series of Instances is created on a different device or on a different occasion than the earlier Instances.</para>
                        </note>
                    </listitem>
                </varlistentry>
            </variablelist>
        </section>
    </chapter>
    <chapter xml:id="chapter_4" label="4" status="1">
        <title>Symbols and Abbreviations</title>
        <para>The following symbols and abbreviations are used in this Part of the Standard.</para>
        <variablelist>
            <varlistentry>
                <term>DICOM</term>
                <listitem>
                    <para>Digital Imaging and Communications in Medicine</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>IOD</term>
                <listitem>
                    <para>Information Object Definition</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>ISO</term>
                <listitem>
                    <para>International Standards Organization</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>JSON</term>
                <listitem>
                    <para>JavaScript Object Notation</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>NEMA</term>
                <listitem>
                    <para>National Electrical Manufacturers Association</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>SR</term>
                <listitem>
                    <para>Structured Reporting</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>UCUM</term>
                <listitem>
                    <para>Unified Code for Units of Measure</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>UID</term>
                <listitem>
                    <para>Unique Identifier</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>XML</term>
                <listitem>
                    <para>Extensible Markup Language</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>XSLT</term>
                <listitem>
                    <para>Extensible Stylesheet Language Transformations</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </chapter>
    <chapter xml:id="chapter_5" label="5" status="1">
        <title>Conventions</title>
        <para>Terms listed in <xref linkend="chapter_3" xrefstyle="template:Section %n"/> Definitions are capitalized throughout the document.</para>
    </chapter>

    <chapter xml:id="chapter_A" label="A" status="1">
        <title>XML Encoding</title>

        <section xml:id="sect_A.1" label="A.1" status="2">
            <title>Introduction to XML</title>
            <para>XML (Extensible Markup Language) is a language that defines a set of rules for encoding documents and other data structures in a format that is both human-readable and machine-readable. It is language-independent, and primarily used for serializing and transmitting structured data. It is described in detail by the W3C <xref linkend="biblio_XML"/>.</para>
        </section>

        <section xml:id="sect_A.2" label="A.2" status="2">
            <title>XML Encoding of DICOM Instances</title>

            <informaltable rules="all" frame="box">
                <tr>
                    <td>
                        <para><emphasis role="italic">Include contents of PS3.19 Section A.1 Native DICOM Model, renaming "Native DICOM Model" to "XML Encoding of DICOM Instances in Native Format" and renumbering sections appropriately.</emphasis></para>
                    </td>
                </tr>
            </informaltable>

            <section label="A.2.1" status="2" xml:id="sect_A.2.1">
                <title>DICOM XML Encoding in Native Format</title>
                <section label="A.2.1.1" status="3" xml:id="sect_A.2.1.1">
                    <title>Usage</title>
                    <para>...</para>
                </section>
                <section label="A.2.1.2" status="4" xml:id="sect_A.2.1.2">
                    <title>Identification</title>
                    <para>...</para>
                </section>
                <section label="A.2.1.3" status="4" xml:id="sect_A.2.1.3">
                    <title>Support</title>
                    <para>...</para>
                </section>
                <section label="A.2.1.4" status="4" xml:id="sect_A.2.1.4">
                    <title>Information Model</title>
                    <para>...</para>
                </section>
                <section label="A.2.1.5" status="4" xml:id="sect_A.2.1.5">
                    <title>Description</title>
                    <para>...</para>
                </section>
                <section label="A.2.1.6" status="4" xml:id="sect_A.2.1.6">
                    <title>Schema</title>
                    <para>...</para>
                </section>
                <section label="A.2.1.7" status="4" xml:id="sect_A.2.1.7">
                    <title>Examples</title>
                    <para>...</para>
                </section>
            </section>
        </section>

    </chapter>

    <chapter xml:id="chapter_B" label="B" status="1">
        <title>JSON Encoding</title>

        <section xml:id="sect_B.1" label="B.1" status="2">
            <title>Introduction to JavaScript Object Notation (JSON)</title>
            <para>JSON is a text-based open standard, derived from JavaScript, for representing data structures and associated arrays. It is language-independent, and primarily used for serializing and transmitting lightweight structured data over a network connection. It is described in detail by the Internet Engineering Task Force (IETF) in <xref linkend="biblio_RFC_4627"/>.</para>
        </section>

        <section xml:id="sect_B.2" label="B.2" status="2">
            <title>JSON Encoding of DICOM Instances and Messages</title>
            <section label="B.2.1" status="3" xml:id="sect_B.2.1">
                <title>Introduction</title>
                <para>The JSON Encoding of DICOM Instances and Messages defines a representation of DICOM SOP Instances as JSON that allows a sender or recipient of data to create or navigate through a DICOM Data Set using JSON-based tools instead of relying on tool kits that understand the binary encoding of DICOM.</para>
                <note>
                    <para>An alternative JSON encoding is defined in <xref linkend="sect_B.3" xrefstyle="select: label"/> for Structured Reports, in a manner that abstracts the Content Tree structure rather than encoding individual elements of each content item. This does not mean that an SR cannot be encoded using the representation described in this Section.</para>
                </note>
            </section>

            <section label="B.2.2" status="2" xml:id="sect_B.2.2">
                <title>DICOM JSON Encoding</title>
                <informaltable rules="all" frame="box">
                    <tr>
                        <td>
                            <para><emphasis role="italic">Include contents of PS3.18 Section F.2 DICOM JSON Model, renaming "DICOM JSON Model" to "JSON Encoding of DICOM Instances and Messages" and renumbering sections appropriately:</emphasis></para>
                        </td>
                    </tr>
                </informaltable>
            </section>
            <section label="B.2.3" status="2" xml:id="sect_B.2.3">
                <title>Transformation to and from other DICOM Encodings</title>
                <informaltable rules="all" frame="box">
                    <tr>
                        <td>
                            <para><emphasis role="italic">Include contents of PS3.18 Section F.3 Transformation with other DICOM Formats, renaming "DICOM JSON Model" to "JSON Encoding of DICOM Instances and Messages" and renumbering sections appropriately:</emphasis></para>
                        </td>
                    </tr>
                </informaltable>
            </section>
            <section label="B.2.4" status="2" xml:id="sect_B.2.4">
                <title>DICOM JSON Encoding Example</title>
                <informaltable rules="all" frame="box">
                    <tr>
                        <td>
                            <para><emphasis role="italic">Include contents of PS3.18 Section DICOM JSON Model Example, renaming "DICOM JSON Model" to "JSON Encoding of DICOM Instances and Messages" and renumbering sections appropriately:</emphasis></para>
                        </td>
                    </tr>
                </informaltable>
            </section>
        </section>

        <section xml:id="sect_B.3" label="B.3" status="2">
            <title>JSON Encoding of Structured Reports</title>
            <section xml:id="sect_B.3.1" label="B.3.1" status="3">
                <title>Introduction</title>
                <para>The JSON Encoding of DICOM Structured Reports defines a representation of DICOM Structured Report Instances as JSON that allows a sender or recipient of data to create or navigate through a DICOM Structured Report using JSON-based tools instead of relying on tool kits that understand the binary encoding of DICOM.</para>
                <note>
                    <orderedlist>
                        <listitem>
                            <para>An alternative JSON encoding is defined in <xref linkend="sect_B.2" xrefstyle="select: label"/> for any Data Set, including DICOM Structured Reports, in a manner that encodes individual elements of each content item, rather than abstracting the Content Tree structure.</para>
                        </listitem>
                        <listitem>
                            <para>The encoding described in this Section allows for representation of DICOM SR SOP Instances as JSON in a manner that satisfies the goal of enabling the use of JSON-based tools (as does the alternative JSON encoding in <xref linkend="sect_B.2.1" xrefstyle="select: label"/>), but additionally allows a sender or recipient of data to create or navigate through a JSON-encoded DICOM Data Set with less knowledge of the native DICOM encoding details. The representation in this Section provides a simplified syntax that allows the use of standard keywords or arbitrary Business Names, which are easier to construct and read. This helps  implementers who may not be intimately familiar with the coding systems related to their data. Further, this representation facilitates the incremental construction of an instance by separate steps (i.e., "successive refinement"), by allowing the encoding to represent a distinct subset of an entire instance. The concept of
                                successive refinement helps  implementers who may not have the full context required to define a complete DICOM instance. See the informative discussion in PS3.17 <xref linkend="chapter_XXXX" xrefstyle="select: label"/>.</para>
                        </listitem>
                    </orderedlist>
                </note>
            </section>
            <section xml:id="sect_B.3.2" label="B.3.2" status="3">
                <title>DICOM JSON Structured Report Encoding</title>
                <para>The JSON SR encoding consists of two types of file:</para>
                <itemizedlist>
                    <listitem>
                        <para>a JSON-encoded Content File</para>
                    </listitem>
                    <listitem>
                        <para>a JSON-encoded Business Names File</para>
                    </listitem>
                </itemizedlist>
                <para>Corresponding Media Types are declared as follows:</para>
                <para>
                    <itemizedlist>
                        <listitem>
                            <para>application/x-dicom-sr+json for the JSON-encoded Content File</para>
                        </listitem>
                        <listitem>
                            <para>application/x-dicom-bn+json for the JSON-encoded Business Names File</para>
                        </listitem>
                    </itemizedlist>
                </para>
                <note>
                    <orderedlist>
                        <listitem>
                            <para>These Media Types are experimental. They will be replaced by official Media Types once this Supplement is Final Text and appropriate types are registered with IANA.</para>
                        </listitem>
                        <listitem>
                            <para>At this time there is no PS3.18 Study Retrieval (WADO-RS) behavior defined that uses these media types. However, if a user agent were to request the retrieval of a DICOM SR instance and to restrict the Accept header to these two experimental media types, an origin server that implements the transformation of the binary DICOM SR to the JSON encoding is not prohibited from returning it in the requested form.</para>
                        </listitem>
                    </orderedlist>
                </note>
                 <para>The default character repertoire for both the JSON-encoded Content File and the JSON-encoded Business Names File shall be UTF-8 / ISO_IR 192.</para>
                <para>The Content File consists of:</para>
                <itemizedlist>
                    <listitem>
                        <para>a single top-level array containing a single JSON object (i.e., a single "result" in <xref linkend="sect_B.2.2" xrefstyle="select: label title"/> terminology),</para>
                    </listitem>
                    <listitem>
                        <para>that single JSON object containing an unordered set of subordinate JSON objects, each of which is either:</para>
                        <itemizedlist>
                            <listitem>
                                <para>a JSON-encoded DICOM Attribute of the top level Data Set, or</para>
                            </listitem>
                            <listitem>
                                <para>the root node of a JSON-encoded DICOM Structured Report Content Tree</para>
                            </listitem>
                        </itemizedlist>
                    </listitem>
                </itemizedlist>
                <note>
                    <para>In <xref linkend="sect_B.2.2" xrefstyle="select: label title"/>, the set of subordinate objects is defined to be ordered by their property name in ascending order. No such order is required in the representation defined here, since the property names are Business Names, not hexadecimal numeric representations of a DICOM Tag. There is no need to sort the property names alphabetically, and it would be unnecessarily burdensome to the author of the JSON representation to require them to be sorted in their binary DICOM Tag order, though such ordering will be required when converting to binary DICOM encoding.</para>
                </note>
                <para>Business Names are used to identify:</para>
                <itemizedlist>
                    <listitem>
                        <para>DICOM Attributes (rather than using DICOM Data Element Tags)</para>
                    </listitem>
                    <listitem>
                        <para>Codes used in the DICOM SR Content Tree</para>
                    </listitem>
                </itemizedlist>
                <note>
                    <para>Restrictions on the format of Business Names are described in <xref linkend="sect_B.3.2.3.1" xrefstyle="select: label title"/>.</para>
                </note>
                <para>Standard DICOM Attributes used in the Content File are identified by the Keyword used in the PS3.6 Table 6-1 Registry of DICOM Data Elements.</para>
                <note>
                    <para>It is not necessary to define Standard DICOM Attributes used in the Business Names File, but it is not prohibited.</para>
                </note>
                <para>If Private DICOM Attributes are present, corresponding Private Creator Data Elements shall also be present.</para>
                <para>Private DICOM Attributes used in the Content File may be defined in the Business Names File.</para>
                <para>All codes used in the Content File shall be defined in the Business Names File.</para>
                <note>
                    <para>Business Names are not used for Code Sequence Items in Code Sequence Attributes outside of the SR Content Tree; rather, they are encoded in the traditional manner, i.e., as individual DICOM Attributes. The reasons for this are (a) to align the DICOM Attribute header as closely with <xref linkend="sect_B.2.2" xrefstyle="select: label title"/> as possible, and (b) very few, if any, Code Sequence Items are used in DICOM Structured Reporting SOP Classes outside of the SR Content Tree.</para>
                </note>
                <para>The Business Names File also encodes other information related to the Content Items for which a Code is used as the Concept Name, including:</para>
                <itemizedlist>
                    <listitem>
                        <para>Value Type</para>
                    </listitem>
                    <listitem>
                        <para>Relationship</para>
                    </listitem>
                </itemizedlist>
                
                <section xml:id="sect_B.3.2.1" label="B.3.2.1" status="4">
                    <title>Attribute Encoding</title>
                    <para>Each DICOM Attribute in the top level Data Set, and all of the DICOM Attributes nested within Sequence Attributes in the top level Data Set, except the Attributes describing the root node of the Structured Report Content Tree, are encoded as follows:</para>
                    <itemizedlist>
                        <listitem>
                            <para>Each Attribute shall be encoded in the same manner as used for the JSON Encoding of DICOM Instances and Messages, as defined in <xref linkend="sect_B.2.2" xrefstyle="select: label title"/>, except that</para>
                        </listitem>
                        <listitem>
                            <para>In place of the eight character uppercase hexadecimal representation of a DICOM Tag used as the name of each Attribute object, one of the following may be used:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>a Standard DICOM Data Element Keyword from PS3.6 Table 6-1 Registry of DICOM Data Elements, or</para>
                                </listitem>
                                <listitem>
                                    <para>a Business Name defined in the Business Names File</para>
                                </listitem>
                            </itemizedlist>
                        </listitem>
                        <listitem>
                            <para>The Value Representation ("vr") may be omitted for Standard Data Element Keywords (since a dictionary is expected to be available to the parser), or if it is defined in the Business Names File</para>
                        </listitem>
                        <listitem>
                            <para>A single JSON String may be used in place of the JSON Object and its enclosed "Value" Array when the value consists of a single value and the "vr" has been omitted</para>
                        </listitem>
                        <listitem>
                            <para>An empty JSON String (""), empty JSON object ({}), or null may be used to encode a zero length value</para>
                        </listitem>
                        <listitem>
                            <para>In place of a UID encoded in a UI VR, a Standard DICOM UID Keyword from PS3.6 Table A-1 UID Values may be used</para>
                            <note>
                                <para>No mechanism is provided to define UIDs in the Business Names File.</para>
                            </note>
                        </listitem>

                    </itemizedlist>
                    <para>For example, any of the following is a valid encoding of the same Attribute that contains a single value:</para>
                    <programlisting><![CDATA[
        "00080020":  { "vr": "DT", "Value": [ "20130409" ] }
]]></programlisting>
                    <programlisting><![CDATA[
        "StudyDate": { "vr": "DT", "Value": [ "20130409" ] }
]]></programlisting>
                    <programlisting><![CDATA[
        "StudyDate": { "Value": [ "20130409" ] }
]]></programlisting>
                    <programlisting><![CDATA[
        "StudyDate": "20130409"
]]></programlisting>
                    <para>The following are valid encodings of the same Attribute that contains no value (is zero length):</para>
                    <programlisting><![CDATA[
        "00080020":  { "vr": "DT" }
]]></programlisting>
                    <programlisting><![CDATA[
        "StudyDate": { "vr": "DT" }
]]></programlisting>
                    <programlisting><![CDATA[
        "StudyDate": {}
]]></programlisting>
                    <programlisting><![CDATA[
        "StudyDate": ""
]]></programlisting>
                    <programlisting><![CDATA[
        "StudyDate": null
]]></programlisting>
                    <note>
                        <para>For consistency with the JSON encoding described in <xref linkend="sect_B.2.2" xrefstyle="select: label title"/>, a null value is not used when a multi-valued attribute has one or more empty values, in which case a "Value" Array is always present.</para>
                    </note>
                    <para>The following would also be valid, if the Business Names "FechaDeEstudio" or "検査日" were defined for the DICOM Data Element in the Business Names File:</para>
                    <programlisting><![CDATA[
        "FechaDeEstudio": "20130409"
]]></programlisting>
                    <programlisting><![CDATA[
        "検査日": "20130409"
]]></programlisting>
                    <para>The following are valid encodings of the same UI VR Attribute, using either a standard keyword or the actual UID:</para>
                    <programlisting><![CDATA[
        "SOPInstanceUID": "1.2.840.10008.5.1.4.1.1.2"
]]></programlisting>
                    <programlisting><![CDATA[
        "SOPInstanceUID": "CTImageStorage"
]]></programlisting>
                    <para>The following is an example of a Private Data Element, together with the required Private Creator, encoded using the hexadecimal tag:</para>
                    <programlisting><![CDATA[
        "00190010": { "vr": "LO", "Value": [ "ACME CORP ELEMENTS" ] },
        "00191001": { "vr": "US", "Value": [ "3" ] }
]]></programlisting>
                    <para>or encoded using a Business Name, if "NumberOfPhases" and "AcmeCorpCreator" were defined in the Business Names File:</para>
                    <programlisting><![CDATA[
        "AcmeCorpCreator": { "Value": [ "ACME CORP ELEMENTS" ] },
        "NumberOfPhases":  { "Value": [ "3" ] }
]]></programlisting>
                    
                    <para>The following Attributes in the top level Data Set describing the root node of the Structured Report Content Tree shall not be encoded as described in this section:</para>
                    <itemizedlist>
                        <listitem>
                            <para>ContentSequence</para>
                        </listitem>
                        <listitem>
                            <para>ValueType</para>
                        </listitem>
                        <listitem>
                            <para>ConceptNameCodeSequence</para>
                        </listitem>
                        <listitem>
                            <para>ContinuityOfContent</para>
                        </listitem>
                        <listitem>
                            <para>ContentTemplateSequence</para>
                        </listitem>
                        <listitem>
                            <para>MappingResource</para>
                        </listitem>
                        <listitem>
                            <para>TemplateIdentifier</para>
                        </listitem>
                    </itemizedlist>

                </section>
                <section xml:id="sect_B.3.2.2" label="B.3.2.2" status="4">
                    <title>Structured Report Content Tree Encoding</title>
                    <para>A DICOM Structured Report Content Tree consists of a nested set of Content Items of unlimited depth, beginning with a single root Content Item.</para>
                    <section xml:id="sect_B.3.2.2.1" label="B.3.2.2.1" status="5">
                        <title>Content Item Encoding</title>
                        <para>Each Content Item, including the root Content Item, shall be encoded as a single JSON name-value pair, consisting of:</para>
                        <itemizedlist>
                            <listitem>
                                <para>a JSON name, which is a Business Name defined in the Business Names File, for the DICOM Concept Name Code Sequence</para>
                            </listitem>
                            <listitem>
                                <para>a JSON value, which is a JSON Array (or in the case of an unannotated leaf node, a JSON String), whose encoding depends on:</para>
                                <itemizedlist>
                                    <listitem>
                                        <para>the DICOM Content Item Value Type</para>
                                    </listitem>
                                    <listitem>
                                        <para>whether the Content Item is a leaf node of the tree or has children</para>
                                    </listitem>
                                    <listitem>
                                        <para>whether children are by-value or by-reference</para>
                                    </listitem>
                                </itemizedlist>
                            </listitem>
                        </itemizedlist>
                        <para>Neither the Value Type nor the Relationship Type are explicitly encoded in the JSON SR Content Tree representation, since:</para>
                        <itemizedlist>
                            <listitem>
                                <para>appropriate types are defined in the Business Name File</para>
                            </listitem>
                            <listitem>
                                <para>when more than one type is defined in the Business Name File, sufficient context allows the Value Type and the Relationship Type to be deduced</para>
                            </listitem>
                            <listitem>
                                <para>for anonymous Content Items (those without a Concept Name), sufficient context allows the Value Type and the Relationship Type to be deduced</para>
                            </listitem>
                        </itemizedlist>
                        <para>The following is an example of a leaf Content Item:</para>
                        <programlisting><![CDATA[
    {
        "TrackingIdentifier": [
            "5b6eb4301d3175942d29985a3d0fbb00"
        ]
    }
]]></programlisting>
                        <para>The enclosing JSON Array may be omitted for a leaf node with a single value, no children and no annotations, and a single JSON String used to represent the text value or a coded value Business Name.</para>
                        <para>The following is an example of the same leaf Content Item without the enclosing JSON Array for the value:</para>
                        <programlisting><![CDATA[
    {
        "TrackingIdentifier": "5b6eb4301d3175942d29985a3d0fbb00"
    }
]]></programlisting>
                    </section>
                    <section xml:id="sect_B.3.2.2.2" label="B.3.2.2.2" status="5">
                        <title>Nested Content Encoding</title>
                        <para>For Content Items with children, the last entry of the JSON object value Array is itself an Array, which contains the ordered list of child Content Items, each of which is a JSON object.</para>
                        <note>
                            <orderedlist>
                                <listitem>
                                    <para>Leaf Content Items omit the final Array, rather than encoding an empty Array.</para>
                                </listitem>
                                <listitem>
                                    <para>Arrays are used to preserve the order of child Content Items, which may be significant.</para>
                                </listitem>
                                <listitem>
                                    <para>Use of an Array allows for multiple children with the same Concept Name, since JSON does not permit multiple JSON Objects with the same name.</para>
                                </listitem>
                            </orderedlist>
                        </note>
                        <para>The following is an example of a CODE Content Item with one child that is also a CODE Content Item:</para>
                        <programlisting><![CDATA[
    {
        "LanguageOfContentItemAndDescendants": [
            "English",
            [
                {
                    "CountryOfLanguage": [
                        "UnitedStates"
                    ]
                }
            ]
        ]
    }
]]></programlisting>
                    </section>
                    
                    <section xml:id="sect_B.3.2.2.3" label="B.3.2.2.3" status="5">
                        <title>Content Item Annotations</title>
                        <para>There are Attributes of Content Items that need to be encoded to describe particular Attributes of specific Value Types of Content Items, to preserve the full fidelity of the content and to address structural concerns, such as by-reference relationships. These are encoded using Standard Content Item Annotations.</para>
                        <para>The first item of the JSON object value Array may be a JSON Object, containing a set of JSON Objects each of which is a Content Item Annotation.</para>
                        <para>The names of all Standard Content Item Annotations begin with the "_" symbol.</para>
                        <para>The Standard Content Item Annotations that may be used with any Content Item Value Type are:</para>
                        <variablelist>
                            <varlistentry>
                                <term>_label</term>
                                <listitem>
                                    <para>A JSON String that is the label of a Content Item that may be the target of a by-reference relationship</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_ref</term>
                                <listitem>
                                    <para>A JSON String that is the reference to a labeled Content Item that is the target of a by-reference relationship</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_obsdt</term>
                                <listitem>
                                    <para>A JSON String that is the value of the ObservationDateTime (DT VR) of a Content Item</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_obsuid</term>
                                <listitem>
                                    <para>A JSON String that is the value of the ObservationUID (UI VR) of a Content Item</para>
                                </listitem>
                            </varlistentry>
                        </variablelist>
                        <para>Annotations that are specific to individual Value Types of Content Items are described in the definition of each Value Type.</para>
                        <para>Other annotations than those defined in the standard are permitted in the Content Item Annotation object as long as their names do not begin with the "_" symbol.</para>
                        <note>
                            <para>The intent of allowing other annotations is to allow preservation of private DICOM Attributes that may be associated with the Content Item, but for which no standard representation is defined.</para>
                        </note>
                        <para>This is an example of Content Item Annotations used to describe ObservationDateTime and ObservationUID of a leaf CODE Content Item:</para>
                        <programlisting><![CDATA[
    "Margin": [
        {
            "_obsdt": "20191230163732",
            "_obsuid": "2.25.121653014693151198548584403358069116971"
        },
        "Irregular"
    ]
]]></programlisting>
                    </section>
                    
                    <section xml:id="sect_B.3.2.2.4" label="B.3.2.2.4" status="5">
                        <title>Encoding of By-Reference Relationships</title>
                        <para>Most commonly, the Content Tree is strictly hierarchical (i.e., a tree) and many templates and some SR Storage SOP Classes constrain the encoding to that pattern. However, by-reference relationships (which allow for a directed acyclic graph) are permitted by the underlying mechanism and hence are supported in the JSON encoding by use of Content Item Annotations.</para>
                        <para>Both the referenced Content Item and the referencing Content Item need to be decorated with Content Item Annotations as follows:</para>
                        <itemizedlist>
                            <listitem>
                                <para>The referenced Content Item must have a _label annotation, whose value shall be a string unique amongst such labels within the instance.</para>
                            </listitem>
                            <listitem>
                                <para>The referencing Content Item must have a _ref annotation, whose value shall correspond to the _label annotation of the referenced Content Item within the instance.</para>
                            </listitem>
                        </itemizedlist>
                        <note>
                            <orderedlist>
                                <listitem>
                                    <para>In the traditional binary DICOM SR encoding, references are made using ReferencedContentItemIdentifier (see PS3.3 C.17.3.2.5), which is the numeric hierarchical position (the set of ordinal positions along the by-value relationship path from the root Content Item) in the Content Tree.</para>
                                </listitem>
                                <listitem>
                                    <para>The _label and _ref annotations are not required to be the numeric hierarchical position in the Content Tree. Accordingly, a receiver should not expect to be able to parse the structure of labels, only recognize them.</para>
                                </listitem>
                                <listitem>
                                    <para>The parser of the JSON representation is required to map the _ref values to the numeric hierarchical position by tracking the position of Content Items with _label annotations. Since forward references are permitted, this may require two passes of the JSON file.</para>
                                </listitem>
                            </orderedlist>
                            
                        </note>
                        <para>The following is a simplified example of a reference from a CAD finding SCOORD to an IMAGE Content Item in an Image Library:</para>
                        <programlisting><![CDATA[
    [
        {"ImageLibrary": [[{"_unnamed": [
            {"_label": "label1",
             "_class": "1.2.840.10008.5.1.4.1.1.1.2",
             "_instance": "1.3.6.1.4.1.5962.99.1.993064428.2122236180.1358202762732.2.0"}
        ]}]]},
        {"CADProcessingAndFindingsSummary": [
            "AllAlgorithmsSucceededWithFindings",
                [{"IndividualImpressionRecommendation": [[
                    ...,
                    {"Center": [
                        {"_gtype": "POINT",
                         "_coord2d": [165,2433]},
                        [{"_unnamed": [{"_ref": "label1"}]}]
                    ]},
                    ...
                ]]}]
            ]}
        ]},
        ...
    ]
]]></programlisting>
                        
                    </section>
                    
                    <section xml:id="sect_B.3.2.2.5" label="B.3.2.2.5" status="5">
                        <title>Encoding of Content Items of Specific Value Type</title>
                        <para>The encoding of Content Items depends on their Value Type.
                            There is a specific JSON representation for each of the Value Types defined in PS3.3 Table C.17-5 Document Content Macro Attributes.</para>
                        <note>
                            <para>The pattern of encoding for each Value Type not only allows each Content Item to be encoded with full fidelity, but also allows for recognition of the Value Type by the parser when it is not explicitly defined for the Concept Name in the Business Names File, or is potentially ambiguous, such as for anonymous Content Items that do not have a Concept Name.</para>
                        </note>
                        
                        <section xml:id="sect_B.3.2.2.5.1" label="B.3.2.2.5.1" status="6">
                            <title>Encoding of Content Items Without a Value</title>
                            <para>The following Value Type never has a value, though it may have children, and is encoded in the JSON value Array without a value:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>CONTAINER</para>
                                </listitem>
                            </itemizedlist>
                            <para>The following is an example of a CONTAINER Content Item, where the code and Value Type for "ImageLibrary" are defined in the Business Names File:</para>
                            <programlisting><![CDATA[
    {
        "ImageLibrary": []
    }
]]></programlisting>
                            <para>The following is an example of a CONTAINER Content Item, with one child that is a CONTAINER with no children of its own:</para>
                            <programlisting><![CDATA[
    {
        "ImageLibrary": [
            [
                {
                    "ImageLibraryGroup": []
                }
            ]
        ]
    }
]]></programlisting>
                            <note>
                                <orderedlist>
                                    <listitem>
                                        <para>A parser can assume that a CONTAINS, HAS CONCEPT MOD, HAS ACQ CONTEXT or HAS OBS CONTEXT Relationship Type is needed between a parent CONTAINER Content Item and any type of child Content Item, since those are the only relationships permitted for CONTAINER parents. A typical example would be a CODE child of a CONTAINER with a CONTAINS relationship, where as the same CODE may be used elsewhere as a child of a non-container (such as a CODE or NUM) with a HAS PROPERTIES relationship.</para>
                                    </listitem>
                                </orderedlist>
                            </note>
                            <para>The Standard Content Item Annotations that are specific to CONTAINER are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_tid</term>
                                    <listitem>
                                        <para>A JSON String that is the TemplateIdentifier (VR CS) value of the ContentTemplateSequence of a CONTAINER Content Item</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_tmr</term>
                                    <listitem>
                                        <para>A JSON String that is the template MappingResource (VR CS) value of the ContentTemplateSequence of a CONTAINER Content Item</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_tmruid</term>
                                    <listitem>
                                        <para>A JSON String that is the template MappingResourceUID (VR UI) value of the ContentTemplateSequence of a CONTAINER Content Item</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_cont</term>
                                    <listitem>
                                        <para>A JSON String that is the ContinuityOfContent (VR CS) value of a CONTAINER Content Item. If absent, defaults to "SEPARATE".</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            <para>This is an example of Content Item Annotations used to describe the template used for a root level CONTAINER (with the child Array illustrated but children omitted):</para>
                            <programlisting><![CDATA[
    "ImagingMeasurementReport": [
        {
            "_tmr": "DCMR",
            "_tid": "1500"
        },
        [ ... ]
    ]
]]></programlisting>
                        </section>
                        
                        <section xml:id="sect_B.3.2.2.5.2" label="B.3.2.2.5.2" status="6">
                            <title>Encoding of Content Items with a Single Value</title>
                            <para>The following Value Types consist of a single value that is either textual or a code, and are all encoded in the JSON value Array using a single JSON String:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>CODE</para>
                                </listitem>
                                <listitem>
                                    <para>DATE</para>
                                </listitem>
                                <listitem>
                                    <para>DATETIME</para>
                                </listitem>
                                <listitem>
                                    <para>TEXT</para>
                                </listitem>
                                <listitem>
                                    <para>TIME</para>
                                </listitem>
                                <listitem>
                                    <para>UIDREF</para>
                                </listitem>
                            </itemizedlist>
                            <para>The JSON String value may represent a text value, or a Business Name representing a code or UID, depending on the Value Type deduced from the Concept Name.</para>
                            <note>
                                <orderedlist>
                                    <listitem>
                                        <para>A parser can assume that the Value Type is CODE when the encoded value is a JSON String that can be found amongst the set of Business Names. A typical example of when this is necessary would be when the same Concept Name is used for both CODE and TEXT content items.</para>
                                    </listitem>
                                </orderedlist>
                            </note>
                            
                            <para>The following are examples of a TEXT Content Item with no children, where the code and Value Type for "Comment" is defined in the Business Names File, encoded with and without the enclosing JSON Array:</para>
                            <programlisting><![CDATA[
    {
        "Comment": [
            "Liver is enlarged"
        ]
    }
]]></programlisting>
                            <programlisting><![CDATA[
    {
        "Comment": "Liver is enlarged"
    }
]]></programlisting>
                            <para>The following is an example of a CODE Content Item with no children, where the code and Value Type for "FindingSite", as well as the code for the "Liver", are defined in the Business Names File, encoded with and without the enclosing JSON Array:</para>
                            <programlisting><![CDATA[
    {
        "FindingSite": [
            "Liver"
        ]
    }
]]></programlisting>
                            <programlisting><![CDATA[
    {
        "FindingSite": "Liver"
    }
]]></programlisting>
                            <para>The following is an example of a CODE Content Item with one child that is also a CODE Content Item, with no children of its own:</para>
                            <programlisting><![CDATA[
    {
        "LanguageOfContentItemAndDescendants": [
            "English",
            [
                {
                    "CountryOfLanguage": "UnitedStates"
                }
            ]
        ]
    }
]]></programlisting>
                        </section>
                        
                        <section xml:id="sect_B.3.2.2.5.3" label="B.3.2.2.5.3" status="6">
                            <title>Encoding of Numeric Content Items</title>
                            <para>The following Value Type consists of a single numeric value encoded in a JSON String or JSON Number:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>NUM</para>
                                </listitem>
                            </itemizedlist>
                            <para>The JSON String or JSON Number is the value of the NumericValue (VR DS) in MeasuredValueSequence.</para>
                            <note>
                                <orderedlist>
                                    <listitem>
                                        <para>Either a JSON String or JSON Number is permitted, and a JSON String may be used to preserve the original format during transformation of the representation, or if needed to avoid losing precision of a decimal string. Since the encoding of the value in the binary DICOM SR is as a Decimal String, use of a JSON Number rather than a JSON String may result in formatting changes, such as removal of trailing zeroes after the decimal point, removal of a decimal point if the value is a whole integer and conversion from scientific to decimal notation, which may affect string value comparison in a round trip.</para>
                                    </listitem>
                                    <listitem>
                                        <para>Allowing either a JSON String or JSON Number is consistent with the handling of IS and DS attributes outside the Content Tree as described in <xref linkend="sect_B.2.2" xrefstyle="select: label"/>.</para>
                                    </listitem>
                                </orderedlist>
                             </note>
                            <para>The Standard Content Item Annotations that are specific to NUM are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_units</term>
                                    <listitem>
                                        <para>A JSON String that is the Business Name of the code in the MeasurementUnitsCodeSequence (VR SQ) in MeasuredValueSequence.</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_float</term>
                                    <listitem>
                                        <para>A JSON Number that is the value of the FloatingPointValue (VR FD) in MeasuredValueSequence.</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_numerator</term>
                                    <listitem>
                                        <para>A JSON Number that is the value of the RationalNumeratorValue (VR SL) in MeasuredValueSequence.</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_denominator</term>
                                    <listitem>
                                        <para>A JSON Number that is the value of the RationalDenominatorValue (VR SL) in MeasuredValueSequence.</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_numqual</term>
                                    <listitem>
                                        <para>A JSON String that is the Business Name of the code in NumericValueQualifierCodeSequence (VR SQ) in MeasuredValueSequence.</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            <note>
                                <para>See PS3.3 Table C.18.1-1 Numeric Measurement Macro Attributes for further details of what these Attributes mean.</para>
                            </note>
                            <para>The following is an example of a NUM Content Item with no children, where the code and Value Type for "Length", as well as the code for the "mm", are defined in the Business Names File, and the numeric value is encoded as a JSON String:</para>
                            <programlisting><![CDATA[
    {
        "Length": [
            {"_units": "mm"},
            "66.43856134"
        ]
    }
]]></programlisting>
                            <para>This is the same example, but with the numeric value encoded as a JSON Number:</para>
                            <programlisting><![CDATA[
    {
        "Length": [
            {"_units": "mm"},
            66.43856134
        ]
    }
]]></programlisting>
                            <para>This is a (contrived) example of the less commonly used NUM Content Item Annotations, using a Business Name of "MeasurementFailure" for (114006, DCM, "Measurement failure"):</para>
                            <programlisting><![CDATA[
   {
        "Ratio": [
            {
                "_units": "nounits",
                "_float": 0.333333333333333,
                "_numerator": 1,
                "_denominator": 3,
                "_numqual": "MeasurementFailure"
            },
            "0.333333333333333"
        ]
    }
]]></programlisting>
                        </section>
                        
                        <section xml:id="sect_B.3.2.2.5.4" label="B.3.2.2.5.4" status="6">
                            <title>Encoding of Content Items That Reference Storage SOP Instances</title>
                            <para>The following Value Types reference Storage SOP Instances:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>COMPOSITE</para>
                                </listitem>
                                <listitem>
                                    <para>IMAGE</para>
                                </listitem>
                                <listitem>
                                    <para>WAVEFORM</para>
                                </listitem>
                            </itemizedlist>
                            <para>The Standard Content Item Annotations that are shared by COMPOSITE, IMAGE and WAVEFORM are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_class</term>
                                    <listitem>
                                        <para>A JSON String that is the value of ReferencedSOPClassUID (VR UI) in ReferencedSOPSequence</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_instance</term>
                                    <listitem>
                                        <para>A JSON String that is the value of ReferencedSOPInstanceUID (VR UI) in ReferencedSOPSequence</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            <para>The additional Standard Content Item Annotations that are specific to IMAGE are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_frame</term>
                                    <listitem>
                                        <para>A JSON Number that is the single value of ReferencedFrameNumber (VR US), or a JSON Array that contains the one or more values of ReferencedFrameNumber</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_segment</term>
                                    <listitem>
                                        <para>A JSON Number that is the value of ReferencedSegmentNumber (VR US)</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_prclass</term>
                                    <listitem>
                                        <para>A JSON String that is the value of ReferencedSOPClassUID (VR UI) in ReferencedSOPSequence (to a Presentation State Instance) within ReferencedSOPSequence</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_prinstance</term>
                                    <listitem>
                                        <para>A JSON String that is the value of ReferencedSOPInstanceUID (VR UI) in ReferencedSOPSequence (to a Presentation State Instance) within ReferencedSOPSequence</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_rwvmclass</term>
                                    <listitem>
                                        <para>A JSON String that is the value of ReferencedSOPClassUID (VR UI) in ReferencedRealWorldValueMappingInstanceSequence</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_rwvminstance</term>
                                    <listitem>
                                        <para>A JSON String that is the value of ReferencedSOPInstanceUID (VR UI) in ReferencedRealWorldValueMappingInstanceSequence</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            <para>The following is an example of an IMAGE Content Item with no children, for which the Concept Name describes the purpose of reference:</para>
                            <programlisting><![CDATA[
    {
        "SourceImageForSegmentation": [
            {
                "_class": "CTImageStorage",
                "_instance": "1.3.6.1.4.1.14519.5.2.1.9203.4004.268018422288818573226516023762"
            }
        ]
    }
]]></programlisting>
                            <para>The following is an example of an IMAGE Content Item with no children, for which there is no Concept Name encoded (i.e., is an anonymous Content Item):</para>
                            <programlisting><![CDATA[
    {
        "_unnamed": [
            {
                "_class": "CTImageStorage",
                "_instance": "1.3.6.1.4.1.14519.5.2.1.9203.4004.268018422288818573226516023762"
            }
        ]
    }
]]></programlisting>
                            <note>
                                <para>A parser can detect that this is an IMAGE (rather than a COMPOSITE or WAVEFORM) Content Item even in the absence of a Business Name for the Concept Name, by recognizing that the standard Content Item Annotation "_class" is present and has a value that is recognized as an Image Storage SOP Class UID.</para>
                            </note>
                            <para>The following is an example of an IMAGE Content Item with no children, for which the Concept Name describes the purpose of reference and with a ReferencedSegmentNumber:</para>
                            <programlisting><![CDATA[
    {
        "ReferencedSegmentationFrame": [
            {
                "_class": "SegmentationStorage",
                "_instance": "1.3.6.1.4.1.14519.5.2.1.9203.4004.63596459524750245042750475",
                "_segment": 3
            }
        ]
    }
]]></programlisting>
                            
                            <para>The additional Standard Content Item Annotations that are specific to WAVEFORM are: <emphasis role="italic">[TBD.]</emphasis></para>
                            <para><emphasis role="italic">[TBD. If a WAVEFORM Content Item has other Attributes than ReferencedSOPClassUID and ReferencedSOPInstanceUID ....]</emphasis></para>
                        </section>
                        
                        <section xml:id="sect_B.3.2.2.5.5" label="B.3.2.2.5.5" status="6">
                            <title>Encoding of Coordinate Content Items</title>
                            <para>The following Value Types encode coordinates and their type:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>SCOORD</para>
                                </listitem>
                                <listitem>
                                    <para>SCOORD3D</para>
                                </listitem>
                                <listitem>
                                    <para>TCOORD</para>
                                </listitem>
                            </itemizedlist>
                            <para>The Standard Content Item Annotations that are common to SCOORD and SCOORD3D are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_gtype</term>
                                    <listitem>
                                        <para>A JSON String that is the value of GraphicType (VR CS)</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            <para>The Standard Content Item Annotations that are specific to SCOORD are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_coord2d</term>
                                    <listitem>
                                        <para>A JSON Array that contains the values of GraphicData (VR FL)</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            
                            <para>The following is an example of an SCOORD Content Item SELECTED FROM an IMAGE, for which there is no Concept Name encoded for either (i.e., they are both anonymous Content Items):</para>
                            <programlisting><![CDATA[
    {
                            "_unnamed": [
                              {
                                "_gtype": "POLYLINE",
                                "_coord2d": [
                                  172.83535766601562,
                                  270.0640869140625,
                                  133.79888916015625,
                                  343.0453186035156
                                ]
                              },
                              [
                                {
                                  "_unnamed": [
                                    {
                                      "_class": "1.2.840.10008.5.1.4.1.1.2",
                                      "_instance": "1.3.6.1.4.1.14519.5.2.1.9203.4004.268018422288818573226516023762"
                                    }
                                  ]
                                }
                              ]
                            ]
                          }
]]></programlisting>
                            <note>
                                <orderedlist>
                                    <listitem>
                                        <para>A parser can detect that this is an SCOORD Content Item even in the absence of a Business Name for the Concept Name by recognizing that the standard Content Item Annotation "_coord2d" is present. The use of a distinct annotation specific to 2D coordinates simplifies distinguishing the content item from an SCOORD3D, as well as signalling that the coordinate tuples have two values.</para>
                                    </listitem>
                                    <listitem>
                                        <para>A parser can assume that a SELECTED FROM Relationship Type is needed between the parent SCOORD Content Item and the child IMAGE Content Item, since that is the only relationship permitted between these two Value Types.</para>
                                    </listitem>
                                    <listitem>
                                        <para>A parser can assume that an INFERRED FROM Relationship Type is needed between a parent TEXT, CODE or NUM Content Item and a child SCOORD Content Item, since that is the only relationship permitted between these Value Types.</para>
                                    </listitem>
                                </orderedlist>
                             </note>
                            <para><emphasis role="italic">[TBD. Add other annotations, specifically PixelOriginInterpretation (for WSI) and FiducialUID.]</emphasis></para>
                            
                            
                            <para>The Standard Content Item Annotations that are specific to SCOORD3D are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_coord3d</term>
                                    <listitem>
                                        <para>A JSON Array that contains the values of GraphicData (VR FL)</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_for</term>
                                    <listitem>
                                        <para>A JSON String that contains the value of ReferencedFrameOfReferenceUID (VR UI)</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            <para>The following is an example of an SCOORD3D Content Item, for which there is no Concept Name encoded (i.e., it is an anonymous Content Item):</para>
                            <programlisting><![CDATA[
                            "_unnamed": [
                              {
                                "_gtype": "POINT",
                                "_coord3d": [
                                  0,
                                  -90.38133239746094,
                                  -690.6307983398438
                                ],
                                "_for": "1.3.12.2.1107.5.99.3.30000008080512120990900000004"
                              }
                            ]
]]></programlisting>
                            <note>
                                <orderedlist>
                                    <listitem>
                                        <para>A parser can detect that this is an SCOORD3D Content Item even in the absence of a Business Name for the Concept Name by recognizing that the standard Content Item Annotation "_coord3d" is present. The use of a distinct annotation specific to 3D coordinates simplifies distinguishing the content item from an SCOORD, as well as signalling that the coordinate tuples have three values.</para>
                                    </listitem>
                                </orderedlist>
                            </note>
                            
                            <para><emphasis role="italic">[TBD. The Standard Content Item Annotations that are specific to TCOORD are:]</emphasis></para>
                            <orderedlist>
                                <listitem>
                                    <para><emphasis role="italic">[TBD. ...  annotations for TemporalRangeType, ReferencedSamplePositions, ReferencedTimeOffsets or Referenced DateTime.]</emphasis></para>
                                </listitem>
                            </orderedlist>
                            
                        </section>

                        <section xml:id="sect_B.3.2.2.5.6" label="B.3.2.2.5.6" status="6">
                            <title>Encoding of Person Name Content Items</title>
                            <para>The following Value Type encodes person names:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>PNAME</para>
                                </listitem>
                            </itemizedlist>
                            <para>The Standard Content Item Annotations that are specific to PNAME are:</para>
                            <variablelist>
                                <varlistentry>
                                    <term>_alphabetic</term>
                                    <listitem>
                                        <para>A JSON String that is the alphabetic group of PN components.</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_ideographic</term>
                                    <listitem>
                                        <para>A JSON String that is the ideographic group of PN components.</para>
                                    </listitem>
                                </varlistentry>
                                <varlistentry>
                                    <term>_phonetic</term>
                                    <listitem>
                                        <para>A JSON String that is the phonetic group of PN components.</para>
                                    </listitem>
                                </varlistentry>
                            </variablelist>
                            <note>
                                <orderedlist>
                                    <listitem>
                                        <para>The annotation property names are different than those used in the top level data set representation of PN attributes, because reserved keywords are required to begin with an underscore.</para>
                                    </listitem>
                                    <listitem>
                                        <para>The components and component groups of a PN VR are described in PS3.5 Section 6.2 Value Representation (VR).</para>
                                    </listitem>
                                </orderedlist>
                            </note>
                            <para>The following is an example of a PNAME Content Item with no children, with only an alphabetic group:</para>
                            <programlisting><![CDATA[
    {
        "PersonObserverName": [
            {"_alphabetic": "Smith^John"}
        ]
    }
]]></programlisting>
                            <para>The following is an example of a PNAME Content Item with no children, with an alphabetic and ideographic but no phonetic group:</para>
                            <programlisting><![CDATA[
    {
        "PersonObserverName": [
            {"_alphabetic": "Wang^XiaoDong"},
            {"_ideographic": "王^小東"}
        ]
    }
]]></programlisting>
                        </section>
                        
                        
                    </section>
                    
                    </section>
                <section xml:id="sect_B.3.2.3" label="B.3.2.3" status="4">
                    <title>Encoding of Business Names File</title>
                    <para>The Business Names File consists of:</para>
                    <itemizedlist>
                        <listitem>
                            <para>a single top-level array containing zero or more JSON objects,</para>
                        </listitem>
                        <listitem>
                            <para>each of those JSON objects describing:</para>
                            <itemizedlist>
                                <listitem>
                                    <para>a coded concept used as the concept name of a name-value pair,</para>
                                </listitem>
                                <listitem>
                                    <para>a coded concept used as the value of a name-value pair, or</para>
                                </listitem>
                                <listitem>
                                    <para>a DICOM data element.</para>
                                </listitem>
                            </itemizedlist>
                        </listitem>
                    </itemizedlist>
                    <para>Each JSON object in the top level array contains a single subordinate JSON object that has a property name that is the Business Name.</para>
                    <note>
                        <para>The JSON objects are nested since the same property name may be used to describe both a coded concept and a DICOM data element. E.g., such concepts as "StudyDate" or "Modality" may be used in the Content File as a DICOM Attribute or Content Item or both.</para>
                    </note>
                    <section xml:id="sect_B.3.2.3.1" label="B.3.2.3.1" status="5">
                        <title>Restrictions on Business Name Format</title>
                        <itemizedlist>
                            <listitem>
                                <para>Business Names shall consist of letters, digits, and underscores (the '_' symbol), but no other special characters.</para>
                            </listitem>
                            <listitem>
                                <para>Business Names shall not begin with an underscore, which is reserved for annotations defined by the DICOM standard.</para>
                            </listitem>
                            <listitem>
                                <para>Business Names are case sensitive.</para>
                            </listitem>
                        </itemizedlist>
                        <note>
                            <orderedlist>
                                <listitem>
                                    <para>These restrictions are a subset of valid JSON property names (<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.json.org/json-en.html">https://www.json.org/json-en.html</link>) and valid JavaScript identifiers</para>
                                </listitem>
                                <listitem>
                                    <para>Though the use of upper camel-case (<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://en.wikipedia.org/wiki/Camel_case">https://en.wikipedia.org/wiki/Camel_case</link>), US-ASCII strings matches the convention used for DICOM Data Element keywords in PS3.6, it is not required for user-defined business names.</para>
                                    <para>For example, it is preferred that "ImageRegion" be used, rather than "imageRegion" or "Imageregion" or "Image_Region", but none of these other variants is explicitly prohibited. However, "Image Region" is prohibited since spaces are not permitted, even though JSON theoretically allows spaces in property names.</para>
                                    <para>Specifically, strings in localized character sets are permitted, and this includes letters within those localized character sets. </para>
                                    <para>The business names used for units are a special case, for which it may be important to preserve the correct case. E.g., one would not want to capitalize "mm" as "Mm", but "Millimeter" would be reasonable. There is considerable variation in PS3.16 templates and context groups with respect to whether code meanings for units are abbreviated or not.</para>
                                    <para>See also the discussions at <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://google.github.io/styleguide/jsoncstyleguide.xml#Property_Name_Guidelines">https://google.github.io/styleguide/jsoncstyleguide.xml#Property_Name_Guidelines</link> and  <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://mathiasbynens.be/notes/javascript-identifiers">https://mathiasbynens.be/notes/javascript-identifiers</link>.</para>
                                </listitem>
                                <listitem>
                                    <para>It is strongly advised that known JavaScript reserved words not be used as Business Names (specifically, keywords, future reserved words, null literals and Boolean literals).</para>
                                </listitem>
                            </orderedlist>
                            
                        </note>
                    </section>
                    <section xml:id="sect_B.3.2.3.2" label="B.3.2.3.2" status="5">
                        <title>Coded Concept Business Names</title>
                    <para>A coded concept, whether used as a value or concept name, is defined with the following basic properties:</para>
                    <variablelist>
                        <varlistentry>
                            <term>_cv</term>
                            <listitem>
                                <para>The CodeValue of the coded concept</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>_csd</term>
                            <listitem>
                                <para>The CodingSchemeDesignator of the coded concept</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>_cm</term>
                            <listitem>
                                <para>The CodeMeaning of the coded concept</para>
                            </listitem>
                        </varlistentry>
                    </variablelist>
                    <para>This is an example of the definition of a coded concept for (41806-1, LN, "CT Abdomen"):</para>
                    <programlisting><![CDATA[
  {
    "CTAbdomen": {
      "_cv": "41806-1",
      "_csd": "LN",
      "_cm": "CT Abdomen"
    }
  }
]]></programlisting>
                    <para>A coded concept that is used as the Concept Name of a Content Item is defined with the following additional properties:</para>
                    <variablelist>
                        <varlistentry>
                            <term>_vt</term>
                            <listitem>
                                <para>The Value Type of the Content Item, encoded as a JSON Array of one or more JSON Strings corresponding to the Value Types defined in PS3.3 Table C.17.3-7.</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>_rel</term>
                            <listitem>
                                <para>The Relationship Type of the Content Item with its parent Content Item, encoded as a JSON Array of one or more JSON Strings corresponding to the Relationship Types defined in PS3.3 Table C.17.3-8.</para>
                            </listitem>
                        </varlistentry>
                    </variablelist>
                    <note>
                        <para>A JSON Array rather than a single JSON String value is used, since some Concept Names may be used with different types in different contexts. E.g., (121050, DCM, "Equivalent Meaning of Concept Name") may have a CODE or a TEXT Value Type. (111010, DCM, "Center") may have a HAS PROPERTIES or INFERRED FROM Relationship Type.</para>
                    </note>
                    <para>This is an example of the definition of a coded concept for (363698007, SCT, "Finding Site") that may be used as a Concept Name of a Content Item, with the Value Type of CODE and a Relationship Type of HAS CONCEPT MOD:</para>
                    <programlisting><![CDATA[
  {
    "FindingSite": {
      "_cv": "363698007",
      "_csd": "SCT",
      "_cm": "Finding Site",
      "_vt": ["CODE"],
      "_rel": ["HAS CONCEPT MOD"]
    }
  }
]]></programlisting>
                        <para>Less commonly used (extended) properties of the coded concept are as follows:</para>
                        <variablelist>
                            <varlistentry>
                                <term>_csv</term>
                                <listitem>
                                    <para>The CodingSchemeVersion (VR SH)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_lcv</term>
                                <listitem>
                                    <para>The LongCodeValue (VR UC)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_urncv</term>
                                <listitem>
                                    <para>The URNCodeValue (VR UR)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cid</term>
                                <listitem>
                                    <para>The ContextIdentifier (VR CS)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cuid</term>
                                <listitem>
                                    <para>The ContextUID (VR UI)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cmr</term>
                                <listitem>
                                    <para>The MappingResource (VR CS)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cmruid</term>
                                <listitem>
                                    <para>The MappingResourceUID (VR UI)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cmrname</term>
                                <listitem>
                                    <para>The MappingResourceName (VR LO)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cvers</term>
                                <listitem>
                                    <para>The ContextGroupVersion (VR DT)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cext</term>
                                <listitem>
                                    <para>The ContextGroupExtensionFlag (VR CS)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_clocvers</term>
                                <listitem>
                                    <para>The ContextGroupLocalVersion (VR DT)</para>
                                </listitem>
                            </varlistentry>
                            <varlistentry>
                                <term>_cextcruid</term>
                                <listitem>
                                    <para>The ContextGroupExtensionCreatorUID (VR UI)</para>
                                </listitem>
                            </varlistentry>
                        </variablelist>
                    </section>
                    <section xml:id="sect_B.3.2.3.3" label="B.3.2.3.3" status="5">
                        <title>DICOM Data Element Business Names</title>
                    <para>A DICOM data element, whether Standard or Private, is defined with the following basic properties:</para>
                    <variablelist>
                        <varlistentry>
                            <term>_tag</term>
                            <listitem>
                                <para>The eight character uppercase hexadecimal representation of a DICOM Tag, as defined in <xref linkend="sect_B.2.2" xrefstyle="select: label title"/>.</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>_vr</term>
                            <listitem>
                                <para>The Value Representation encoded as JSON String corresponding to the Value Representations defined in PS3.5 Table 6.2-1</para>
                            </listitem>
                        </varlistentry>
                    </variablelist>
                    <para>This is an example of the definition of a Standard Data Element, Series Instance UID (0020,000E):</para>
                    <programlisting><![CDATA[
  {
    "SeriesInstanceUID": {
      "_tag": "0020000E",
      "_vr": "UI"
    }
  }
]]></programlisting>
                        <para>In the case of Private Data Elements, the tag shall be exactly as encoded in the Data Set, i.e., with the block number included. The corresponding Private Creator Data Element is included in the JSON-encoded SR Content File.</para>
                        <note>
                            <para>This is to be consistent with the encoding defined in <xref linkend="sect_B.2.2" xrefstyle="select: label title"/>. It also means that neither the creator nor the parser needs to be aware of the distinction between Private and Standard Data Elements when transforming between the binary and JSON representations.</para>
                        </note>
                        <para>This is an example of the definition of a Private Data Element and its corresponding Private Creator:</para>
                    <programlisting><![CDATA[
  {
    "AcmeCorpCreator": {
      "_tag": "00190010",
      "_vr": "LO"
    }
  },
    {
    "NumberOfPhases": {
      "_tag": "00191001",
      "_vr": "US"
    }
  }
]]></programlisting>
                    <note>
                        <orderedlist>
                            <listitem>
                                <para>The value of the Private Creator Data Element is not specified in the Business Names File, and needs to be encoded in the JSON Content File, e.g., "ACME CORP ELEMENTS" or similar.</para>
                            </listitem>
                            <listitem>
                                <para>There is no relationship defined in the Business Names File between the Private Data Element and the Private Creator. It is only in the JSON Content File, which makes use of these Business Names, that the correspondence between the definition of a block of Private Data Elements and the use of that block is established through the Data Element Tag numerical values as defined in PS3.5 Section 7.8.1.</para>
                            </listitem>
                        </orderedlist>
                    </note>
                    </section>
                    
                    
                    
                    
                </section>
                </section>
            
            <section xml:id="sect_B.3.3" label="B.3.3" status="3">
                <title>DICOM JSON Structured Report Encoding Examples (Informative)</title>
                <section xml:id="sect_B.3.3.1" label="B.3.3.1" status="4">
                    <title>DICOM JSON Simple Single Linear Measurement Encoding Example</title>
                    <section xml:id="sect_B.3.3.1.1" label="B.3.3.1.1" status="5">
                        <title>Simplest Example</title>
                    <para>The following is the simplest example of the content that TID 1500 allows for a single linear distance measurement.</para>
                    <para>Note that TID 1500 requires both a Tracking Identifier and Tracking Unique Identifier. These are minimal requirements of the Template, not of the JSON transformation per se, and might not be needed by other Templates.</para>
                        <section xml:id="sect_B.3.3.1.1.1" label="B.3.3.1.1.1" status="6">
                            <title>Semantic Content</title>
                            <para>A compact representation of the semantic content of the transformed DICOM SR tree is shown here:</para>
                    <programlisting><![CDATA[
: CONTAINER: (126000,DCM,"Imaging Measurement Report")  [SEPARATE] (DCMR,1500)
	>CONTAINS: CONTAINER: (126010,DCM,"Imaging Measurements")  [SEPARATE]
		>>CONTAINS: CONTAINER: (125007,DCM,"Measurement Group")  [SEPARATE]
			>>>HAS OBS CONTEXT: TEXT: (112039,DCM,"Tracking Identifier")  = "5b6eb4301d3175942d29985a3d0fbb00"
			>>>HAS OBS CONTEXT: UIDREF: (112040,DCM,"Tracking Unique Identifier")  = "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.1"
			>>>CONTAINS: NUM: (410668003,SCT,"Length")  = 66.43856134 (mm,UCUM,"mm")
				>>>>INFERRED FROM: SCOORD:  = POLYLINE {172.835357666016,270.064086914062,133.798889160156,343.045318603516}
					>>>>>SELECTED FROM: IMAGE:  = (1.2.840.10008.5.1.4.1.1.2,1.3.6.1.4.1.14519.5.2.1.9203.4004.268018422288818573226516023762)
]]></programlisting>
                    </section>
                        <section xml:id="sect_B.3.3.1.1.2" label="B.3.3.1.1.2" status="6">
                            <title>JSON Content Item Tree Only</title>
                        <para>This is the JSON File consisting of just the Content Item Tree, with the DICOM top level Data Set omitted for clarity, such as might be produced by an AI Algorithm and Lesion Manager before merging with the Composite Context:</para>
                    <programlisting><![CDATA[
[
    "ImagingMeasurementReport": [
      {
        "_tmr": "DCMR",
        "_tid": "1500"
      },
      [
        {
          "ImagingMeasurements": [
            [
              {
                "MeasurementGroup": [
                  [
                    {
                      "TrackingIdentifier": "5b6eb4301d3175942d29985a3d0fbb00"
                    },
                    {
                      "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.1"
                    },
                    {
                      "Length": [
                        "66.43856134",
                        "mm",
                        [
                          {
                            "_unnamed": [
                              "POLYLINE",
                              [
                                172.83535766601562,
                                270.0640869140625,
                                133.79888916015625,
                                343.0453186035156
                              ],
                              [
                                {
                                  "_unnamed": [
                                    "1.2.840.10008.5.1.4.1.1.2",
                                    "1.3.6.1.4.1.14519.5.2.1.9203.4004.268018422288818573226516023762"
                                  ]
                                }
                              ]
                            ]
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
        }
      ]
    ]
  }
]
]]></programlisting>
                    </section>
                    </section>
                    <section xml:id="sect_B.3.3.1.2" label="B.3.3.1.2" status="5">
                        <title>More Realistic Example</title>
                        <para>The following is a more realistic example of a TID 1500 encoding of a single linear distance measurement, which adds Language and Country, the Person Observer, the Procedure Reported, an Image Library entry, and a Finding Site.</para>
                        <section xml:id="sect_B.3.3.1.2.1" label="B.3.3.1.2.1" status="6">
                            <title>Semantic Content</title>
                        <para>A compact representation of the semantic content of the transformed DICOM SR tree is shown here:</para>
                    <programlisting><![CDATA[
: CONTAINER: (126000,DCM,"Imaging Measurement Report")  [SEPARATE] (DCMR,1500)
	>HAS CONCEPT MOD: CODE: (121049,DCM,"Language of Content Item and Descendants")  = (eng,RFC5646,"English")
		>>HAS CONCEPT MOD: CODE: (121046,DCM,"Country of Language")  = (US,ISO3166_1,"United States")
	>HAS OBS CONTEXT: PNAME: (121008,DCM,"Person Observer Name")  = "adventurous_cod"
	>HAS CONCEPT MOD: CODE: (121058,DCM,"Procedure reported")  = (41806-1,LN,"CT Abdomen")
	>CONTAINS: CONTAINER: (111028,DCM,"Image Library")  [SEPARATE]
		>>CONTAINS: CONTAINER: (126200,DCM,"Image Library Group")  [SEPARATE]
			>>>CONTAINS: IMAGE: (121112,DCM,"Source of Measurement")  = (1.2.840.10008.5.1.4.1.1.2,1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110)
				>>>>HAS ACQ CONTEXT: CODE: (121139,DCM,"Modality")  = (CT,DCM,"Computed Tomography")
				>>>>HAS ACQ CONTEXT: DATE: (111060,DCM,"Study Date")  = "19921113"
				>>>>HAS ACQ CONTEXT: TIME: (111061,DCM,"Study Time")  = "135823"
	>CONTAINS: CONTAINER: (126010,DCM,"Imaging Measurements")  [SEPARATE]
		>>CONTAINS: CONTAINER: (125007,DCM,"Measurement Group")  [SEPARATE]
			>>>HAS OBS CONTEXT: TEXT: (112039,DCM,"Tracking Identifier")  = "5b6eb4301d3175942d29985a3d1b142f"
			>>>HAS OBS CONTEXT: UIDREF: (112040,DCM,"Tracking Unique Identifier")  = "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.48"
			>>>CONTAINS: CODE: (121071,DCM,"Finding")  = (108369006,SCT,"Neoplasm")
			>>>HAS CONCEPT MOD: CODE: (363698007,SCT,"Finding Site")  = (10200004,SCT,"Liver")
			>>>CONTAINS: NUM: (410668003,SCT,"Length")  = 97.08595644 (mm,UCUM,"mm")
				>>>>INFERRED FROM: SCOORD: (121055,DCM,"Path")  = POLYLINE {186.41325378418,274.590057373047,89.1049728393555,374.727081298828}
					>>>>>SELECTED FROM: IMAGE: (121112,DCM,"Source of Measurement")  = (1.2.840.10008.5.1.4.1.1.2,1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110)
]]></programlisting>
                    </section>
                        <section xml:id="sect_B.3.3.1.2.2" label="B.3.3.1.2.2" status="6">
                            <title>JSON Content Item Tree Only</title>
                        <para>This is the JSON File consisting of just the Content Item Tree, with the DICOM top level Data Set omitted for clarity, such as might be produced by an AI tool before merging with the Composite Context:</para>
                <programlisting><![CDATA[
          "ImagingMeasurements": [
            [
              {
                "MeasurementGroup": [
                  [
                    {
                      "TrackingIdentifier": "5b6eb4301d3175942d29985a3d1b142f"
                    },
                    {
                      "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.48"
                    },
                    {
                      "Finding": "Neoplasm"
                    },
                    {
                      "FindingSite": "Liver"
                    },
                    {
                      "Length": [
                        {
                          "_units": "mm"
                        },
                        "97.08595644",
                        [
                          {
                            "Path": [
                              {
                                "_gtype": "POLYLINE",
                                "_coord2d": [
                                  186.4132537841797,
                                  274.5900573730469,
                                  89.10497283935547,
                                  374.7270812988281
                                ]
                              },
                              [
                                {
                                  "SourceOfMeasurement": [
                                    {
                                      "_class": "CTImageStorage",
                                      "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                                    }
                                  ]
                                }
                              ]
                            ]
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
]]></programlisting>
                </section>
                        <section xml:id="sect_B.3.3.1.2.3" label="B.3.3.1.2.3" status="6">
                            <title>Entire JSON File</title>
                        <para>This is the entire JSON File consisting of the DICOM top level Data Set and the Content Item Tree, such as might be produced after merging the AI tool output with the Composite Context required to encode a valid SOP Instance:</para>
                <programlisting><![CDATA[
[
  {
    "SOPClassUID": "EnhancedSRStorage",
    "SOPInstanceUID": "1.3.6.1.4.1.5962.1.1.0.0.0.1577387811.4220.48",
    "StudyDate": "19921113",
    "SeriesDate": null,
    "ContentDate": "20171127",
    "StudyTime": "3138",
    "ContentTime": "173004",
    "AccessionNumber": null,
    "Modality": "SR",
    "Manufacturer": "PixelMed",
    "InstitutionName": null,
    "ReferringPhysicianName": null,
    "StationName": "NONE",
    "StudyDescription": "Liver",
    "SeriesDescription": "Crowds Cure Cancer Annotation as Measurement Report",
    "ManufacturerModelName": "XSLT from annotations_expanded.csv",
    "ReferencedPerformedProcedureStepSequence": null,
    "PatientName": {
      "Value": [
        {
          "Alphabetic": "TCGA-BC-A10W"
        }
      ]
    },
    "PatientID": "TCGA-BC-A10W",
    "PatientBirthDate": null,
    "PatientSex": null,
    "DeviceSerialNumber": "9723613413261",
    "SoftwareVersions": "0.1",
    "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.268372221764133884771237226053",
    "SeriesInstanceUID": "1.3.6.1.4.1.5962.1.3.0.0.1577387811.4220.48",
    "StudyID": null,
    "SeriesNumber": "4578",
    "InstanceNumber": "1",
    "AuthorObserverSequence": {
      "Value": [
        {
          "InstitutionName": null,
          "InstitutionCodeSequence": null,
          "PersonIdentificationCodeSequence": null,
          "ObserverType": "PSN",
          "PersonName": {
            "Value": [
              {
                "Alphabetic": "adventurous_cod"
              }
            ]
          }
        }
      ]
    },
    "PerformedProcedureCodeSequence": null,
    "CurrentRequestedProcedureEvidenceSequence": {
      "Value": [
        {
          "ReferencedSeriesSequence": {
            "Value": [
              {
                "ReferencedSOPSequence": {
                  "Value": [
                    {
                      "ReferencedSOPClassUID": "CTImageStorage",
                      "ReferencedSOPInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                    }
                  ]
                },
                "SeriesInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.228008362642761312820335824744"
              }
            ]
          },
          "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.8421.4008.268372221764133884771237226053"
        }
      ]
    },
    "CompletionFlag": "COMPLETE",
    "VerificationFlag": "UNVERIFIED",
    "ImagingMeasurementReport": [
      {
        "_tmr": "DCMR",
        "_tid": "1500"
      },
      [
        {
          "LanguageOfContentItemAndDescendants": [
            "English",
            [
              {
                "CountryOfLanguage": "UnitedStates"
              }
            ]
          ]
        },
        {
          "PersonObserverName": [
              {"_alphabetic": "adventurous_cod"}
          ]
        },
        {
          "ProcedureReported": "CTAbdomen"
        },
        {
          "ImageLibrary": [
            [
              {
                "ImageLibraryGroup": [
                  [
                    {
                      "SourceOfMeasurement": [
                        {
                          "_class": "CTImageStorage",
                          "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                        },
                        [
                          {
                            "Modality": "ComputedTomography"
                          },
                          {
                            "StudyDate": "19921113"
                          },
                          {
                            "StudyTime": "135823"
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
        },
        {
          "ImagingMeasurements": [
            [
              {
                "MeasurementGroup": [
                  [
                    {
                      "TrackingIdentifier": "5b6eb4301d3175942d29985a3d1b142f"
                    },
                    {
                      "TrackingUniqueIdentifier": "1.3.6.1.4.1.5962.1.1.0.0.0.1535644357.22655.48"
                    },
                    {
                      "Finding": "Neoplasm"
                    },
                    {
                      "FindingSite": "Liver"
                    },
                    {
                      "Length": [
                        {
                          "_units": "mm"
                        },
                        "97.08595644",
                        [
                          {
                            "Path": [
                              {
                                "_gtype": "POLYLINE",
                                "_coord2d": [
                                  186.4132537841797,
                                  274.5900573730469,
                                  89.10497283935547,
                                  374.7270812988281
                                ]
                              },
                              [
                                {
                                  "SourceOfMeasurement": [
                                    {
                                      "_class": "CTImageStorage",
                                      "_instance": "1.3.6.1.4.1.14519.5.2.1.8421.4008.767475413701844560980492237110"
                                    }
                                  ]
                                }
                              ]
                            ]
                          }
                        ]
                      ]
                    }
                  ]
                ]
              }
            ]
          ]
        }
      ]
    ]
  }
]
]]></programlisting>
                    </section>
                        <section xml:id="sect_B.3.3.1.2.4" label="B.3.3.1.2.4" status="6">
                            <title>JSON Business Names File</title>
                        <para>This is the JSON Business Names File for this example, which defines the coded concepts used, as well as the Value Type and Relationship Type for those coded concepts used as Concept Names for Content Items:</para>
                    <programlisting><![CDATA[
[
  {
    "ImagingMeasurementReport": {
      "_cv": "126000",
      "_csd": "DCM",
      "_cm": "Imaging Measurement Report",
      "_vt": [
        "CONTAINER"
      ]
    }
  },
  {
    "Liver": {
      "_cv": "10200004",
      "_csd": "SCT",
      "_cm": "Liver"
    }
  },
  {
    "PersonObserverName": {
      "_cv": "121008",
      "_csd": "DCM",
      "_cm": "Person Observer Name",
      "_vt": [
        "PNAME"
      ],
      "_rel": [
        "HAS OBS CONTEXT"
      ]
    }
  },
  {
    "CTAbdomen": {
      "_cv": "41806-1",
      "_csd": "LN",
      "_cm": "CT Abdomen"
    }
  },
  {
    "MeasurementGroup": {
      "_cv": "125007",
      "_csd": "DCM",
      "_cm": "Measurement Group",
      "_vt": [
        "CONTAINER"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  },
  {
    "ProcedureReported": {
      "_cv": "121058",
      "_csd": "DCM",
      "_cm": "Procedure reported",
      "_vt": [
        "CODE"
      ],
      "_rel": [
        "HAS CONCEPT MOD"
      ]
    }
  },
  {
    "TrackingUniqueIdentifier": {
      "_cv": "112040",
      "_csd": "DCM",
      "_cm": "Tracking Unique Identifier",
      "_vt": [
        "UIDREF"
      ],
      "_rel": [
        "HAS OBS CONTEXT"
      ]
    }
  },
  {
    "CountryOfLanguage": {
      "_cv": "121046",
      "_csd": "DCM",
      "_cm": "Country of Language",
      "_vt": [
        "CODE"
      ],
      "_rel": [
        "HAS CONCEPT MOD"
      ]
    }
  },
  {
    "ImageLibrary": {
      "_cv": "111028",
      "_csd": "DCM",
      "_cm": "Image Library",
      "_vt": [
        "CONTAINER"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  },
  {
    "ComputedTomography": {
      "_cv": "CT",
      "_csd": "DCM",
      "_cm": "Computed Tomography"
    }
  },
  {
    "mm": {
      "_cv": "mm",
      "_csd": "UCUM",
      "_cm": "mm"
    }
  },
  {
    "Path": {
      "_cv": "121055",
      "_csd": "DCM",
      "_cm": "Path",
      "_vt": [
        "SCOORD"
      ],
      "_rel": [
        "INFERRED FROM"
      ]
    }
  },
  {
    "TrackingIdentifier": {
      "_cv": "112039",
      "_csd": "DCM",
      "_cm": "Tracking Identifier",
      "_vt": [
        "TEXT"
      ],
      "_rel": [
        "HAS OBS CONTEXT"
      ]
    }
  },
  {
    "StudyDate": {
      "_cv": "111060",
      "_csd": "DCM",
      "_cm": "Study Date",
      "_vt": [
        "DATE"
      ],
      "_rel": [
        "HAS ACQ CONTEXT"
      ]
    }
  },
  {
    "FindingSite": {
      "_cv": "363698007",
      "_csd": "SCT",
      "_cm": "Finding Site",
      "_vt": [
        "CODE"
      ],
      "_rel": [
        "HAS CONCEPT MOD"
      ]
    }
  },
  {
    "SourceOfMeasurement": {
      "_cv": "121112",
      "_csd": "DCM",
      "_cm": "Source of Measurement",
      "_vt": [
        "IMAGE"
      ],
      "_rel": [
        "CONTAINS",
        "SELECTED FROM"
      ]
    }
  },
  {
    "StudyTime": {
      "_cv": "111061",
      "_csd": "DCM",
      "_cm": "Study Time",
      "_vt": [
        "TIME"
      ],
      "_rel": [
        "HAS ACQ CONTEXT"
      ]
    }
  },
  {
    "Neoplasm": {
      "_cv": "108369006",
      "_csd": "SCT",
      "_cm": "Neoplasm"
    }
  },
  {
    "English": {
      "_cv": "eng",
      "_csd": "RFC5646",
      "_cm": "English"
    }
  },
  {
    "ImageLibraryGroup": {
      "_cv": "126200",
      "_csd": "DCM",
      "_cm": "Image Library Group",
      "_vt": [
        "CONTAINER"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  },
  {
    "LanguageOfContentItemAndDescendants": {
      "_cv": "121049",
      "_csd": "DCM",
      "_cm": "Language of Content Item and Descendants",
      "_vt": [
        "CODE"
      ],
      "_rel": [
        "HAS CONCEPT MOD"
      ]
    }
  },
  {
    "Length": {
      "_cv": "410668003",
      "_csd": "SCT",
      "_cm": "Length",
      "_vt": [
        "NUM"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  },
  {
    "Finding": {
      "_cv": "121071",
      "_csd": "DCM",
      "_cm": "Finding",
      "_vt": [
        "CODE"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  },
  {
    "ImagingMeasurements": {
      "_cv": "126010",
      "_csd": "DCM",
      "_cm": "Imaging Measurements",
      "_vt": [
        "CONTAINER"
      ],
      "_rel": [
        "CONTAINS"
      ]
    }
  },
  {
    "Modality": {
      "_cv": "121139",
      "_csd": "DCM",
      "_cm": "Modality",
      "_vt": [
        "CODE"
      ],
      "_rel": [
        "HAS ACQ CONTEXT"
      ]
    }
  },
  {
    "UnitedStates": {
      "_cv": "US",
      "_csd": "ISO3166_1",
      "_cm": "United States"
    }
  }
]
]]></programlisting>
                </section>
                    </section>
                </section>
                    <section xml:id="sect_B.3.3.2" label="B.3.3.2" status="4">
                <title>DICOM JSON More Complex Segmentation ROI with Multiple Measurements Example</title>
                <para>This Section describes an example JSON representation of measurement and clinical data SRs for hybrid CT/PET head and neck tumor images.</para>
                <note>
                    <orderedlist>
                        <listitem>
                            <para>This example is derived from subject QIN-HEADNECK-01-0024 publicly available at The Cancer Image Archive (TCIA) (<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://nbia.cancerimagingarchive.net/nbia-search/">https://nbia.cancerimagingarchive.net/nbia-search/</link>). The obsolete SRT codes have been replaced with SCT codes, though the UIDs have not been changed.</para>
                        </listitem>
                        <listitem>
                            <para>This example uses segmentations rather than spatial coordinates, and so there is a reference to a separate SEG object to define the ROI. Note the use of the "_segment" to select the segment within the referenced SEG object.</para>
                        </listitem>
                        <listitem>
                            <para>The (very long) lists of images in the CurrentRequestedProcedureEvidenceSequence and the Image Library from the original have been truncated for the purpose of this example. A few slices are included to illustrate the use of the Image Library and to highlight that once used there, they also need to be included in CurrentRequestedProcedureEvidenceSequence.</para>
                            <para>In this example, the Image Library is used to describe the PET images that were segmented, and describes them as 18^FDG.</para>
                        </listitem>
                        <listitem>
                            <para>The use of Person Name Content Items is illustrated, for which the name components and groups are encoded as annotations, even though in this example there is only a single alphabetic component "User1".</para>
                        </listitem>
                        <listitem>
                            <para>The use of Private Data Elements is illustrated, in this case from the RSNA CTP tool used for de-identification by TCIA.</para>
                        </listitem>
                        <listitem>
                            <para>The use of private codes is illustrated.</para>
                        </listitem>
                        <listitem>
                            <para>The use of post-coordinated measurement definitions, e.g., with a primary concept name that indicates the physical quantity, such as SUVbw, and a derivation modifier, such as maximum or mean.</para>
                        </listitem>
                        <listitem>
                            <para>A more compact pretty printer has been used than in the other examples.</para>
                        </listitem>
                        <listitem>
                            <para>A full description of the project that led to the creation of these images can be found in Fedorov A et al. DICOM for quantitative imaging biomarker development: a standards based approach to sharing clinical data and structured PET/CT analysis results in head and neck cancer research. PeerJ. 2016 May 24;4:e2057. Available from: <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://peerj.com/articles/2057/">https://peerj.com/articles/2057/</link>.</para>
                        </listitem>
                    </orderedlist>
                </note>
                        <section xml:id="sect_B.3.3.2.1" label="B.3.3.2.1" status="5">
                            <title>Semantic Content</title>
                            <para>A compact representation of the semantic content of the transformed DICOM SR tree is shown here:</para>
                <programlisting><![CDATA[
: CONTAINER: (126000,DCM,"Imaging Measurement Report")  [SEPARATE] (DCMR,1500)
	>HAS CONCEPT MOD: CODE: (121049,DCM,"Language of Content Item and Descendants")  = (eng,RFC3066,"English")
		>>HAS CONCEPT MOD: CODE: (121046,DCM,"Country of Language")  = (US,ISO3166_1,"United States")
	>HAS OBS CONTEXT: CODE: (121005,DCM,"Observer Type")  = (121006,DCM,"Person")
	>HAS OBS CONTEXT: PNAME: (121008,DCM,"Person Observer Name")  = "User1"
	>HAS CONCEPT MOD: CODE: (121058,DCM,"Procedure reported")  = (44139-4,LN,"PET whole body")
	>CONTAINS: CONTAINER: (111028,DCM,"Image Library")  [SEPARATE] (DCMR,1600)
		>>CONTAINS: CONTAINER: (126200,DCM,"Image Library Group")  [SEPARATE]
			>>>HAS ACQ CONTEXT: CODE: (121139,DCM,"Modality")  = (PT,DCM,"Positron emission tomography")
			>>>HAS ACQ CONTEXT: DATE: (111060,DCM,"Study Date")  = "19860810"
			>>>HAS ACQ CONTEXT: TIME: (111061,DCM,"Study Time")  = "124529.439000"
			>>>HAS ACQ CONTEXT: DATE: (111018,DCM,"Content Date")  = "19860810"
			>>>HAS ACQ CONTEXT: TIME: (111019,DCM,"Content Time")  = "132849.000000"
			>>>HAS ACQ CONTEXT: DATE: (126201,DCM,"Acquisition Date")  = "19860810"
			>>>HAS ACQ CONTEXT: TIME: (126202,DCM,"Acquisition Time")  = "131803.409000"
			>>>HAS ACQ CONTEXT: UIDREF: (112227,DCM,"Frame of Reference UID")  = "1.3.6.1.4.1.14519.5.2.1.2744.7002.148581826664809938988000313184"
			>>>HAS ACQ CONTEXT: NUM: (110910,DCM,"Pixel Data Rows")  = 128 ({pixels},UCUM,"pixels")
			>>>HAS ACQ CONTEXT: NUM: (110911,DCM,"Pixel Data Columns")  = 128 ({pixels},UCUM,"pixels")
			>>>HAS ACQ CONTEXT: CODE: (89457008,SCT,"Radionuclide")  = (77004003,SCT,"^18^Fluorine")
			>>>HAS ACQ CONTEXT: CODE: (349358000,SCT,"Radiopharmaceutical agent")  = (35321007,SCT,"Fluorodeoxyglucose F^18^")
			>>>CONTAINS: IMAGE:  = (1.2.840.10008.5.1.4.1.1.128,1.3.6.1.4.1.14519.5.2.1.2744.7002.221784495212110180451913187136)
			>>>CONTAINS: IMAGE:  = (1.2.840.10008.5.1.4.1.1.128,1.3.6.1.4.1.14519.5.2.1.2744.7002.227723169531643726818780678655)
	>CONTAINS: CONTAINER: (126010,DCM,"Imaging Measurements")  [SEPARATE]
		>>CONTAINS: CONTAINER: (125007,DCM,"Measurement Group")  [SEPARATE] (DCMR,1411)
			>>>HAS OBS CONTEXT: TEXT: (C67447,NCIt,"Activity Session")  = "1"
			>>>HAS OBS CONTEXT: TEXT: (112039,DCM,"Tracking Identifier")  = "primary tumor"
			>>>HAS OBS CONTEXT: UIDREF: (112040,DCM,"Tracking Unique Identifier")  = "2.25.321931685067302978142568823813987841964"
			>>>CONTAINS: CODE: (121071,DCM,"Finding")  = (86049000,SCT,"Neoplasm, Primary")
			>>>HAS OBS CONTEXT: TEXT: (C2348792,UMLS,"Time Point")  = "1"
			>>>CONTAINS: IMAGE: (121191,DCM,"Referenced Segment")  = (1.2.840.10008.5.1.4.1.1.66.4,1.2.276.0.7230010.3.1.4.8323329.20179.1440001365.123124) [Segment 1]
			>>>CONTAINS: UIDREF: (121232,DCM,"Source series for image segmentation")  = "1.3.6.1.4.1.14519.5.2.1.2744.7002.117357550898198415937979788256"
			>>>CONTAINS: COMPOSITE: (126100,DCM,"Real World Value Map used for measurement") (1.2.840.10008.5.1.4.1.1.67,1.2.276.0.7230010.3.1.4.8323329.19845.1440001342.736084)
			>>>HAS CONCEPT MOD: CODE: (370129005,SCT,"Measurement Method")  = (126410,DCM,"SUV body weight calculation method")
			>>>HAS CONCEPT MOD: CODE: (363698007,SCT,"Finding Site")  = (47975008,SCT,"base of tongue")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.6443 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (373098007,SCT,"Mean")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.17526 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (255605001,SCT,"Minimum")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 4.42643 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (56851009,SCT,"Maximum")
			>>>CONTAINS: NUM: (118565006,SCT,"Volume")  = 2.28107 (ml,UCUM,"Milliliter")
				>>>>HAS CONCEPT MOD: CODE: (370129005,SCT,"Measurement Method")  = (126030,DCM,"Sum of segmented voxel volumes")
			>>>CONTAINS: NUM: (126033,DCM,"Total Lesion Glycolysis")  = 8.31291 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 0.268671 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (386136009,SCT,"Standard Deviation")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.45872 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (250137,99PMP,"25th Percentile Value")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.62904 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (373099004,SCT,"Median")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.77375 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (250138,99PMP,"75th Percentile Value")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 4.21502 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (250139,99PMP,"Upper Adjacent Value")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.65419 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (C2347976,UMLS,"RMS")
			>>>CONTAINS: NUM: (250145,99PMP,"Glycolysis Within First Quarter of Intensity Range")  = 2.5636 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250146,99PMP,"Glycolysis Within Second Quarter of Intensity Range")  = 3.54251 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250147,99PMP,"Glycolysis Within Third Quarter of Intensity Range")  = 1.66598 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250148,99PMP,"Glycolysis Within Fourth Quarter of Intensity Range")  = 0.54082 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250140,99PMP,"Percent Within First Quarter of Intensity Range")  = 33.3333 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (250141,99PMP,"Percent Within Second Quarter of Intensity Range")  = 42.5926 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (250142,99PMP,"Percent Within Third Quarter of Intensity Range")  = 18.5185 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (250143,99PMP,"Percent Within Fourth Quarter of Intensity Range")  = 5.55556 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (126037,DCM,"Standardized Added Metabolic Activity")  = 2.53492 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (126038,DCM,"Standardized Added Metabolic Activity Background")  = 2.53302 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
		>>CONTAINS: CONTAINER: (125007,DCM,"Measurement Group")  [SEPARATE] (DCMR,1411)
			>>>HAS OBS CONTEXT: TEXT: (C67447,NCIt,"Activity Session")  = "1"
			>>>HAS OBS CONTEXT: TEXT: (112039,DCM,"Tracking Identifier")  = "lymph node 1"
			>>>HAS OBS CONTEXT: UIDREF: (112040,DCM,"Tracking Unique Identifier")  = "2.25.322468926483622453759930389728579237804"
			>>>CONTAINS: CODE: (121071,DCM,"Finding")  = (14799000,SCT,"Neoplasm, Secondary")
			>>>HAS OBS CONTEXT: TEXT: (C2348792,UMLS,"Time Point")  = "1"
			>>>CONTAINS: IMAGE: (121191,DCM,"Referenced Segment")  = (1.2.840.10008.5.1.4.1.1.66.4,1.2.276.0.7230010.3.1.4.8323329.20179.1440001365.123124) [Segment 2]
			>>>CONTAINS: UIDREF: (121232,DCM,"Source series for image segmentation")  = "1.3.6.1.4.1.14519.5.2.1.2744.7002.117357550898198415937979788256"
			>>>CONTAINS: COMPOSITE: (126100,DCM,"Real World Value Map used for measurement") (1.2.840.10008.5.1.4.1.1.67,1.2.276.0.7230010.3.1.4.8323329.19845.1440001342.736084)
			>>>HAS CONCEPT MOD: CODE: (370129005,SCT,"Measurement Method")  = (126410,DCM,"SUV body weight calculation method")
			>>>HAS CONCEPT MOD: CODE: (363698007,SCT,"Finding Site")  = (312501005,SCT,"lymph node of head and neck")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 4.15059 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (373098007,SCT,"Mean")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 2.95195 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (255605001,SCT,"Minimum")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 7.20806 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (56851009,SCT,"Maximum")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 5.50284 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (126031,DCM,"Peak Value Within ROI")
			>>>CONTAINS: NUM: (118565006,SCT,"Volume")  = 6.71648 (ml,UCUM,"Milliliter")
				>>>>HAS CONCEPT MOD: CODE: (370129005,SCT,"Measurement Method")  = (126030,DCM,"Sum of segmented voxel volumes")
			>>>CONTAINS: NUM: (126033,DCM,"Total Lesion Glycolysis")  = 27.8774 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 0.995325 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (386136009,SCT,"Standard Deviation")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.31104 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (250137,99PMP,"25th Percentile Value")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 3.86546 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (373099004,SCT,"Median")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 4.76111 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (250138,99PMP,"75th Percentile Value")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 6.86802 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (250139,99PMP,"Upper Adjacent Value")
			>>>CONTAINS: NUM: (126401,DCM,"SUVbw")  = 4.26826 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
				>>>>HAS CONCEPT MOD: CODE: (121401,DCM,"Derivation")  = (C2347976,UMLS,"RMS")
			>>>CONTAINS: NUM: (250145,99PMP,"Glycolysis Within First Quarter of Intensity Range")  = 13.058 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250146,99PMP,"Glycolysis Within Second Quarter of Intensity Range")  = 7.63872 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250147,99PMP,"Glycolysis Within Third Quarter of Intensity Range")  = 4.66945 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250148,99PMP,"Glycolysis Within Fourth Quarter of Intensity Range")  = 2.51121 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (250140,99PMP,"Percent Within First Quarter of Intensity Range")  = 56.6038 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (250141,99PMP,"Percent Within Second Quarter of Intensity Range")  = 25.1572 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (250142,99PMP,"Percent Within Third Quarter of Intensity Range")  = 12.5786 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (250143,99PMP,"Percent Within Fourth Quarter of Intensity Range")  = 5.66038 (%,UCUM,"Percent")
			>>>CONTAINS: NUM: (126037,DCM,"Standardized Added Metabolic Activity")  = 14.128 (g,UCUM,"Gram")
			>>>CONTAINS: NUM: (126038,DCM,"Standardized Added Metabolic Activity Background")  = 2.0471 ({SUVbw}g/ml,UCUM,"Standardized Uptake Value body weight")
]]></programlisting>
                </section>
                        <section xml:id="sect_B.3.3.2.2" label="B.3.3.2.2" status="5">
                            <title>Entire JSON File</title>
                            <para>This is the entire JSON File consisting of the DICOM top level Data Set and the Content Item Tree required to encode a valid SOP Instance:</para>
                <programlisting><![CDATA[
[{
    "InstanceCreationDate": "20150819",
    "InstanceCreationTime": "112245",
    "InstanceCreatorUID": "1.2.276.0.7230010.3.0.3.6.1",
    "SOPClassUID": "ComprehensiveSRStorage",
    "SOPInstanceUID": "1.2.276.0.7230010.3.1.4.8323329.20204.1440001365.462666",
    "StudyDate": "19860810",
    "SeriesDate": "20150819",
    "ContentDate": "20150819",
    "StudyTime": "124529.439000",
    "SeriesTime": "112245",
    "ContentTime": "112245",
    "AccessionNumber": "2076699673350889",
    "Modality": "SR",
    "Manufacturer": null,
    "ReferringPhysicianName": null,
    "CodingSchemeIdentificationSequence": {"Value": [
        {
            "CodingSchemeDesignator": "99PMP",
            "CodingSchemeUID": "1.3.6.1.4.1.5962.98.1",
            "CodingSchemeName": "PixelMed Publishing "
        },
        {
            "CodingSchemeDesignator": "DCM",
            "CodingSchemeUID": "1.2.840.10008.2.16.4",
            "CodingSchemeRegistry": "HL7",
            "CodingSchemeName": "DICOM Controlled Terminology"
        },
        {
            "CodingSchemeDesignator": "ISO3166_1",
            "CodingSchemeUID": "2.16.1",
            "CodingSchemeRegistry": "HL7",
            "CodingSchemeName": "ISO 2 letter country codes"
        },
        {
            "CodingSchemeDesignator": "LN",
            "CodingSchemeUID": "2.16.840.1.113883.6.1",
            "CodingSchemeRegistry": "HL7",
            "CodingSchemeName": "LOINC "
        },
        {
            "CodingSchemeDesignator": "RFC3066",
            "CodingSchemeUID": "2.16.840.1.113883.6.121",
            "CodingSchemeRegistry": "HL7",
            "CodingSchemeName": "IETF RFC 3066 language codes"
        },
        {
            "CodingSchemeDesignator": "UCUM",
            "CodingSchemeUID": "2.16.840.1.113883.6.8",
            "CodingSchemeRegistry": "HL7",
            "CodingSchemeName": "Unified Code for Units of Measure "
        },
        {
            "CodingSchemeDesignator": "UMLS",
            "CodingSchemeUID": "2.16.840.1.113883.6.86",
            "CodingSchemeRegistry": "HL7",
            "CodingSchemeName": "UMLS codes as CUIs making up the values in a coding system"
        }
    ]},
    "StudyDescription": "Thorax^1HEAD_NECK_PETCT",
    "SeriesDescription": "tumor measurements - User1 SemiAuto trial 1",
    "ManufacturerModelName": "https://github.com/QIICR/Iowa2DICOM.git",
    "ReferencedPerformedProcedureStepSequence": null,
    "PatientName": {"Value": [{"Alphabetic": "QIN-HEADNECK-01-0024"}]},
    "PatientID": "QIN-HEADNECK-01-0024",
    "PatientBirthDate": null,
    "PatientSex": "M",
    "PatientAge": "043Y",
    "PatientWeight": "66.2",
    "PatientIdentityRemoved": "YES",
    "DeidentificationMethod": "DCM:113100/113105/113107/113108/113109/113111",
    "00130010": {
        "vr": "LO",
        "Value": ["CTP"]
    },
    "00131010": {
        "vr": "LO",
        "Value": ["QIN-HEADNECK"]
    },
    "00131013": {
        "vr": "LO",
        "Value": ["27447002"]
    },
    "SoftwareVersions": "08a9a52",
    "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.2744.7002.271803936741289691489150315969",
    "SeriesInstanceUID": "1.2.276.0.7230010.3.1.3.8323329.20204.1440001365.462668",
    "StudyID": null,
    "SeriesNumber": "75",
    "InstanceNumber": "1",
    "PerformedProcedureCodeSequence": null,
    "CurrentRequestedProcedureEvidenceSequence": {"Value": [{
        "ReferencedSeriesSequence": {"Value": [
            {
                "ReferencedSOPSequence": {"Value": [
                    {
                        "ReferencedSOPClassUID": "PETImageStorage",
                        "ReferencedSOPInstanceUID": "1.3.6.1.4.1.14519.5.2.1.2744.7002.221784495212110180451913187136"
                    },
                    {
                        "ReferencedSOPClassUID": "PETImageStorage",
                        "ReferencedSOPInstanceUID": "1.3.6.1.4.1.14519.5.2.1.2744.7002.227723169531643726818780678655"
                    }
                ]},
                "SeriesInstanceUID": "1.3.6.1.4.1.14519.5.2.1.2744.7002.117357550898198415937979788256"
            },
            {
                "ReferencedSOPSequence": {"Value": [{
                    "ReferencedSOPClassUID": "RealWorldValueMappingStorage",
                    "ReferencedSOPInstanceUID": "1.2.276.0.7230010.3.1.4.8323329.19845.1440001342.736084"
                }]},
                "SeriesInstanceUID": "1.2.276.0.7230010.3.1.4.8323329.19845.1440001342.736083"
            },
            {
                "ReferencedSOPSequence": {"Value": [{
                    "ReferencedSOPClassUID": "SegmentationStorage",
                    "ReferencedSOPInstanceUID": "1.2.276.0.7230010.3.1.4.8323329.20179.1440001365.123124"
                }]},
                "SeriesInstanceUID": "1.2.276.0.7230010.3.1.3.8323329.20179.1440001365.123123"
            }
        ]},
        "StudyInstanceUID": "1.3.6.1.4.1.14519.5.2.1.2744.7002.271803936741289691489150315969"
    }]},
    "CompletionFlag": "PARTIAL",
    "VerificationFlag": "UNVERIFIED",
    "ImagingMeasurementReport": [
        {
            "_tmr": "DCMR",
            "_tid": "1500"
        },
        [
            {"LanguageOfContentItemAndDescendants": [
                "English",
                [{"CountryOfLanguage": "UnitedStates"}]
            ]},
            {"ObserverType": "Person"},
            {
              "PersonObserverName": [{"_alphabetic": "User1"}]
            },
            {"ProcedureReported": "PETWholeBody"},
            {"ImageLibrary": [
                {
                    "_tmr": "DCMR",
                    "_tid": "1600"
                },
                [{"ImageLibraryGroup": [[
                    {"Modality": "PositronEmissionTomography"},
                    {"StudyDate": "19860810"},
                    {"StudyTime": "124529.439000"},
                    {"ContentDate": "19860810"},
                    {"ContentTime": "132849.000000"},
                    {"AcquisitionDate": "19860810"},
                    {"AcquisitionTime": "131803.409000"},
                    {"FrameOfReferenceUID": "1.3.6.1.4.1.14519.5.2.1.2744.7002.148581826664809938988000313184"},
                    {"PixelDataRows": [
                        {"_units": "pixels"},
                        "128"
                    ]},
                    {"PixelDataColumns": [
                        {"_units": "pixels"},
                        "128"
                    ]},
                    {"Radionuclide": "18Fluorine"},
                    {"RadiopharmaceuticalAgent": "FluorodeoxyglucoseF18"},
                    {"_unnamed": [{
                        "_class": "PETImageStorage",
                        "_instance": "1.3.6.1.4.1.14519.5.2.1.2744.7002.221784495212110180451913187136"
                    }]},
                    {"_unnamed": [{
                        "_class": "PETImageStorage",
                        "_instance": "1.3.6.1.4.1.14519.5.2.1.2744.7002.227723169531643726818780678655"
                    }]}
                ]]}]
            ]},
            {"ImagingMeasurements": [[
                {"MeasurementGroup": [
                    {
                        "_tmr": "DCMR",
                        "_tid": "1411"
                    },
                    [
                        {"ActivitySession": "1 "},
                        {"TrackingIdentifier": "primary tumor "},
                        {"TrackingUniqueIdentifier": "2.25.321931685067302978142568823813987841964"},
                        {"Finding": "NeoplasmPrimary"},
                        {"TimePoint": "1 "},
                        {"ReferencedSegment": [{
                            "_class": "SegmentationStorage",
                            "_instance": "1.2.276.0.7230010.3.1.4.8323329.20179.1440001365.123124",
                            "_segment": 1
                        }]},
                        {"SourceSeriesForImageSegmentation": "1.3.6.1.4.1.14519.5.2.1.2744.7002.117357550898198415937979788256"},
                        {"RealWorldValueMapUsedForMeasurement": [{
                            "_class": "RealWorldValueMappingStorage",
                            "_instance": "1.2.276.0.7230010.3.1.4.8323329.19845.1440001342.736084"
                        }]},
                        {"MeasurementMethod": "SUVBodyWeightCalculationMethod"},
                        {"FindingSite": "BaseOfTongue"},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.6443",
                            [{"Derivation": "Mean"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.17526",
                            [{"Derivation": "Minimum"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "4.42643",
                            [{"Derivation": "Maximum"}]
                        ]},
                        {"Volume": [
                            {"_units": "Milliliter"},
                            "2.28107",
                            [{"MeasurementMethod": "SumOfSegmentedVoxelVolumes"}]
                        ]},
                        {"TotalLesionGlycolysis": [
                            {"_units": "Gram"},
                            "8.31291"
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "0.268671",
                            [{"Derivation": "StandardDeviation"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.45872",
                            [{"Derivation": "25thPercentileValue"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.62904",
                            [{"Derivation": "Median"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.77375",
                            [{"Derivation": "75thPercentileValue"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "4.21502",
                            [{"Derivation": "UpperAdjacentValue"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.65419",
                            [{"Derivation": "RMS"}]
                        ]},
                        {"GlycolysisWithinFirstQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "2.5636"
                        ]},
                        {"GlycolysisWithinSecondQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "3.54251"
                        ]},
                        {"GlycolysisWithinThirdQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "1.66598"
                        ]},
                        {"GlycolysisWithinFourthQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "0.54082"
                        ]},
                        {"PercentWithinFirstQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "33.3333"
                        ]},
                        {"PercentWithinSecondQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "42.5926"
                        ]},
                        {"PercentWithinThirdQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "18.5185"
                        ]},
                        {"PercentWithinFourthQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "5.55556"
                        ]},
                        {"StandardizedAddedMetabolicActivity": [
                            {"_units": "Gram"},
                            "2.53492"
                        ]},
                        {"StandardizedAddedMetabolicActivityBackground": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "2.53302"
                        ]}
                    ]
                ]},
                {"MeasurementGroup": [
                    {
                        "_tmr": "DCMR",
                        "_tid": "1411"
                    },
                    [
                        {"ActivitySession": "1 "},
                        {"TrackingIdentifier": "lymph node 1"},
                        {"TrackingUniqueIdentifier": "2.25.322468926483622453759930389728579237804"},
                        {"Finding": "NeoplasmSecondary"},
                        {"TimePoint": "1 "},
                        {"ReferencedSegment": [{
                            "_class": "SegmentationStorage",
                            "_instance": "1.2.276.0.7230010.3.1.4.8323329.20179.1440001365.123124",
                            "_segment": 2
                        }]},
                        {"SourceSeriesForImageSegmentation": "1.3.6.1.4.1.14519.5.2.1.2744.7002.117357550898198415937979788256"},
                        {"RealWorldValueMapUsedForMeasurement": [{
                            "_class": "RealWorldValueMappingStorage",
                            "_instance": "1.2.276.0.7230010.3.1.4.8323329.19845.1440001342.736084"
                        }]},
                        {"MeasurementMethod": "SUVBodyWeightCalculationMethod"},
                        {"FindingSite": "LymphNodeOfHeadAndNeck"},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "4.15059",
                            [{"Derivation": "Mean"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "2.95195",
                            [{"Derivation": "Minimum"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "7.20806",
                            [{"Derivation": "Maximum"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "5.50284",
                            [{"Derivation": "PeakValueWithinROI"}]
                        ]},
                        {"Volume": [
                            {"_units": "Milliliter"},
                            "6.71648",
                            [{"MeasurementMethod": "SumOfSegmentedVoxelVolumes"}]
                        ]},
                        {"TotalLesionGlycolysis": [
                            {"_units": "Gram"},
                            "27.8774"
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "0.995325",
                            [{"Derivation": "StandardDeviation"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.31104",
                            [{"Derivation": "25thPercentileValue"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "3.86546",
                            [{"Derivation": "Median"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "4.76111",
                            [{"Derivation": "75thPercentileValue"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "6.86802",
                            [{"Derivation": "UpperAdjacentValue"}]
                        ]},
                        {"SUVbw": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "4.26826",
                            [{"Derivation": "RMS"}]
                        ]},
                        {"GlycolysisWithinFirstQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "13.058"
                        ]},
                        {"GlycolysisWithinSecondQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "7.63872"
                        ]},
                        {"GlycolysisWithinThirdQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "4.66945"
                        ]},
                        {"GlycolysisWithinFourthQuarterOfIntensityRange": [
                            {"_units": "Gram"},
                            "2.51121"
                        ]},
                        {"PercentWithinFirstQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "56.6038"
                        ]},
                        {"PercentWithinSecondQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "25.1572"
                        ]},
                        {"PercentWithinThirdQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "12.5786"
                        ]},
                        {"PercentWithinFourthQuarterOfIntensityRange": [
                            {"_units": "Percent"},
                            "5.66038"
                        ]},
                        {"StandardizedAddedMetabolicActivity": [
                            {"_units": "Gram"},
                            "14.128"
                        ]},
                        {"StandardizedAddedMetabolicActivityBackground": [
                            {"_units": "StandardizedUptakeValuebodyweight"},
                            "2.0471"
                        ]}
                    ]
                ]}
            ]]}
        ]
    ]
}]
]]></programlisting>
                </section>
                        <section xml:id="sect_B.3.3.2.3" label="B.3.3.2.3" status="5">
                            <title>JSON Business Names File</title>
                            <para>This is the JSON Business Names File for this example, which defines the coded concepts used, as well as the Value Type and Relationship Type for those coded concepts used as Concept Names for Content Items:</para>
                 <programlisting><![CDATA[
[
    {"ImagingMeasurementReport": {
        "_cv": "126000",
        "_csd": "DCM",
        "_cm": "Imaging Measurement Report",
        "_vt": ["CONTAINER"]
    }},
    {"LymphNodeOfHeadAndNeck": {
        "_cv": "312501005",
        "_csd": "SCT",
        "_cm": "lymph node of head and neck"
    }},
    {"PersonObserverName": {
        "_cv": "121008",
        "_csd": "DCM",
        "_cm": "Person Observer Name",
        "_vt": ["PNAME"],
        "_rel": ["HAS OBS CONTEXT"]
    }},
    {"Median": {
        "_cv": "373099004",
        "_csd": "SCT",
        "_cm": "Median"
    }},
    {"StandardizedAddedMetabolicActivity": {
        "_cv": "126037",
        "_csd": "DCM",
        "_cm": "Standardized Added Metabolic Activity",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"MeasurementGroup": {
        "_cv": "125007",
        "_csd": "DCM",
        "_cm": "Measurement Group",
        "_vt": ["CONTAINER"],
        "_rel": ["CONTAINS"]
    }},
    {"ProcedureReported": {
        "_cv": "121058",
        "_csd": "DCM",
        "_cm": "Procedure reported",
        "_vt": ["CODE"],
        "_rel": ["HAS CONCEPT MOD"]
    }},
    {"GlycolysisWithinThirdQuarterOfIntensityRange": {
        "_cv": "250147",
        "_csd": "99PMP",
        "_cm": "Glycolysis Within Third Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"TrackingUniqueIdentifier": {
        "_cv": "112040",
        "_csd": "DCM",
        "_cm": "Tracking Unique Identifier",
        "_vt": ["UIDREF"],
        "_rel": ["HAS OBS CONTEXT"]
    }},
    {"Maximum": {
        "_cv": "56851009",
        "_csd": "SCT",
        "_cm": "Maximum"
    }},
    {"CountryOfLanguage": {
        "_cv": "121046",
        "_csd": "DCM",
        "_cm": "Country of Language",
        "_vt": ["CODE"],
        "_rel": ["HAS CONCEPT MOD"]
    }},
    {"ReferencedSegment": {
        "_cv": "121191",
        "_csd": "DCM",
        "_cm": "Referenced Segment",
        "_vt": ["IMAGE"],
        "_rel": ["CONTAINS"]
    }},
    {"ContentDate": {
        "_cv": "111018",
        "_csd": "DCM",
        "_cm": "Content Date",
        "_vt": ["DATE"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"BaseOfTongue": {
        "_cv": "47975008",
        "_csd": "SCT",
        "_cm": "base of tongue"
    }},
    {"TrackingIdentifier": {
        "_cv": "112039",
        "_csd": "DCM",
        "_cm": "Tracking Identifier",
        "_vt": ["TEXT"],
        "_rel": ["HAS OBS CONTEXT"]
    }},
    {"StudyDate": {
        "_cv": "111060",
        "_csd": "DCM",
        "_cm": "Study Date",
        "_vt": ["DATE"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"PercentWithinSecondQuarterOfIntensityRange": {
        "_cv": "250141",
        "_csd": "99PMP",
        "_cm": "Percent Within Second Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"FindingSite": {
        "_cv": "363698007",
        "_csd": "SCT",
        "_cm": "Finding Site",
        "_vt": ["CODE"],
        "_rel": ["HAS CONCEPT MOD"]
    }},
    {"AcquisitionTime": {
        "_cv": "126202",
        "_csd": "DCM",
        "_cm": "Acquisition Time",
        "_vt": ["TIME"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"SUVbw": {
        "_cv": "126401",
        "_csd": "DCM",
        "_cm": "SUVbw",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"75thPercentileValue": {
        "_cv": "250138",
        "_csd": "99PMP",
        "_cm": "75th Percentile Value"
    }},
    {"GlycolysisWithinFourthQuarterOfIntensityRange": {
        "_cv": "250148",
        "_csd": "99PMP",
        "_cm": "Glycolysis Within Fourth Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"pixels": {
        "_cv": "{pixels}",
        "_csd": "UCUM",
        "_cm": "pixels"
    }},
    {"StandardizedUptakeValuebodyweight": {
        "_cv": "{SUVbw}g/ml",
        "_csd": "UCUM",
        "_cm": "Standardized Uptake Value body weight"
    }},
    {"Volume": {
        "_cv": "118565006",
        "_csd": "SCT",
        "_cm": "Volume",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"Finding": {
        "_cv": "121071",
        "_csd": "DCM",
        "_cm": "Finding",
        "_vt": ["CODE"],
        "_rel": ["CONTAINS"]
    }},
    {"MeasurementMethod": {
        "_cv": "370129005",
        "_csd": "SCT",
        "_cm": "Measurement Method",
        "_vt": ["CODE"],
        "_rel": ["HAS CONCEPT MOD"]
    }},
    {"FrameOfReferenceUID": {
        "_cv": "112227",
        "_csd": "DCM",
        "_cm": "Frame of Reference UID",
        "_vt": ["UIDREF"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"SumOfSegmentedVoxelVolumes": {
        "_cv": "126030",
        "_csd": "DCM",
        "_cm": "Sum of segmented voxel volumes"
    }},
    {"Person": {
        "_cv": "121006",
        "_csd": "DCM",
        "_cm": "Person"
    }},
    {"Modality": {
        "_cv": "121139",
        "_csd": "DCM",
        "_cm": "Modality",
        "_vt": ["CODE"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"NeoplasmPrimary": {
        "_cv": "86049000",
        "_csd": "SCT",
        "_cm": "Neoplasm, Primary"
    }},
    {"StandardizedAddedMetabolicActivityBackground": {
        "_cv": "126038",
        "_csd": "DCM",
        "_cm": "Standardized Added Metabolic Activity Background",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"RadiopharmaceuticalAgent": {
        "_cv": "349358000",
        "_csd": "SCT",
        "_cm": "Radiopharmaceutical agent",
        "_vt": ["CODE"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"Mean": {
        "_cv": "373098007",
        "_csd": "SCT",
        "_cm": "Mean"
    }},
    {"UpperAdjacentValue": {
        "_cv": "250139",
        "_csd": "99PMP",
        "_cm": "Upper Adjacent Value"
    }},
    {"PositronEmissionTomography": {
        "_cv": "PT",
        "_csd": "DCM",
        "_cm": "Positron emission tomography"
    }},
    {"Minimum": {
        "_cv": "255605001",
        "_csd": "SCT",
        "_cm": "Minimum"
    }},
    {"SUVBodyWeightCalculationMethod": {
        "_cv": "126410",
        "_csd": "DCM",
        "_cm": "SUV body weight calculation method"
    }},
    {"GlycolysisWithinFirstQuarterOfIntensityRange": {
        "_cv": "250145",
        "_csd": "99PMP",
        "_cm": "Glycolysis Within First Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"RealWorldValueMapUsedForMeasurement": {
        "_cv": "126100",
        "_csd": "DCM",
        "_cm": "Real World Value Map used for measurement",
        "_vt": ["COMPOSITE"],
        "_rel": ["CONTAINS"]
    }},
    {"PercentWithinFourthQuarterOfIntensityRange": {
        "_cv": "250143",
        "_csd": "99PMP",
        "_cm": "Percent Within Fourth Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"Derivation": {
        "_cv": "121401",
        "_csd": "DCM",
        "_cm": "Derivation",
        "_vt": ["CODE"],
        "_rel": ["HAS CONCEPT MOD"]
    }},
    {"Radionuclide": {
        "_cv": "89457008",
        "_csd": "SCT",
        "_cm": "Radionuclide",
        "_vt": ["CODE"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"AcquisitionDate": {
        "_cv": "126201",
        "_csd": "DCM",
        "_cm": "Acquisition Date",
        "_vt": ["DATE"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"Gram": {
        "_cv": "g",
        "_csd": "UCUM",
        "_cm": "Gram"
    }},
    {"ObserverType": {
        "_cv": "121005",
        "_csd": "DCM",
        "_cm": "Observer Type",
        "_vt": ["CODE"],
        "_rel": ["HAS OBS CONTEXT"]
    }},
    {"StandardDeviation": {
        "_cv": "386136009",
        "_csd": "SCT",
        "_cm": "Standard Deviation"
    }},
    {"GlycolysisWithinSecondQuarterOfIntensityRange": {
        "_cv": "250146",
        "_csd": "99PMP",
        "_cm": "Glycolysis Within Second Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"ImageLibrary": {
        "_cv": "111028",
        "_csd": "DCM",
        "_cm": "Image Library",
        "_vt": ["CONTAINER"],
        "_rel": ["CONTAINS"]
    }},
    {"ActivitySession": {
        "_cv": "C67447",
        "_csd": "NCIt",
        "_cm": "Activity Session",
        "_vt": ["TEXT"],
        "_rel": ["HAS OBS CONTEXT"]
    }},
    {"PeakValueWithinROI": {
        "_cv": "126031",
        "_csd": "DCM",
        "_cm": "Peak Value Within ROI"
    }},
    {"SourceSeriesForImageSegmentation": {
        "_cv": "121232",
        "_csd": "DCM",
        "_cm": "Source series for image segmentation",
        "_vt": ["UIDREF"],
        "_rel": ["CONTAINS"]
    }},
    {"25thPercentileValue": {
        "_cv": "250137",
        "_csd": "99PMP",
        "_cm": "25th Percentile Value"
    }},
    {"PixelDataColumns": {
        "_cv": "110911",
        "_csd": "DCM",
        "_cm": "Pixel Data Columns",
        "_vt": ["NUM"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"Percent": {
        "_cv": "%",
        "_csd": "UCUM",
        "_cm": "Percent"
    }},
    {"18Fluorine": {
        "_cv": "77004003",
        "_csd": "SCT",
        "_cm": "^18^Fluorine"
    }},
    {"PercentWithinThirdQuarterOfIntensityRange": {
        "_cv": "250142",
        "_csd": "99PMP",
        "_cm": "Percent Within Third Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"TimePoint": {
        "_cv": "C2348792",
        "_csd": "UMLS",
        "_cm": "Time Point",
        "_vt": ["TEXT"],
        "_rel": ["HAS OBS CONTEXT"]
    }},
    {"NeoplasmSecondary": {
        "_cv": "14799000",
        "_csd": "SCT",
        "_cm": "Neoplasm, Secondary"
    }},
    {"PercentWithinFirstQuarterOfIntensityRange": {
        "_cv": "250140",
        "_csd": "99PMP",
        "_cm": "Percent Within First Quarter of Intensity Range",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"Milliliter": {
        "_cv": "ml",
        "_csd": "UCUM",
        "_cm": "Milliliter"
    }},
    {"PETWholeBody": {
        "_cv": "44139-4",
        "_csd": "LN",
        "_cm": "PET whole body"
    }},
    {"StudyTime": {
        "_cv": "111061",
        "_csd": "DCM",
        "_cm": "Study Time",
        "_vt": ["TIME"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"English": {
        "_cv": "eng",
        "_csd": "RFC3066",
        "_cm": "English"
    }},
    {"ImageLibraryGroup": {
        "_cv": "126200",
        "_csd": "DCM",
        "_cm": "Image Library Group",
        "_vt": ["CONTAINER"],
        "_rel": ["CONTAINS"]
    }},
    {"ContentTime": {
        "_cv": "111019",
        "_csd": "DCM",
        "_cm": "Content Time",
        "_vt": ["TIME"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"TotalLesionGlycolysis": {
        "_cv": "126033",
        "_csd": "DCM",
        "_cm": "Total Lesion Glycolysis",
        "_vt": ["NUM"],
        "_rel": ["CONTAINS"]
    }},
    {"LanguageOfContentItemAndDescendants": {
        "_cv": "121049",
        "_csd": "DCM",
        "_cm": "Language of Content Item and Descendants",
        "_vt": ["CODE"],
        "_rel": ["HAS CONCEPT MOD"]
    }},
    {"ImagingMeasurements": {
        "_cv": "126010",
        "_csd": "DCM",
        "_cm": "Imaging Measurements",
        "_vt": ["CONTAINER"],
        "_rel": ["CONTAINS"]
    }},
    {"RMS": {
        "_cv": "C2347976",
        "_csd": "UMLS",
        "_cm": "RMS"
    }},
    {"FluorodeoxyglucoseF18": {
        "_cv": "35321007",
        "_csd": "SCT",
        "_cm": "Fluorodeoxyglucose F^18^"
    }},
    {"PixelDataRows": {
        "_cv": "110910",
        "_csd": "DCM",
        "_cm": "Pixel Data Rows",
        "_vt": ["NUM"],
        "_rel": ["HAS ACQ CONTEXT"]
    }},
    {"UnitedStates": {
        "_cv": "US",
        "_csd": "ISO3166_1",
        "_cm": "United States"
    }}
]
]]></programlisting>
</section>
                    </section>
            </section>

            <section xml:id="sect_B.3.4" label="B.3.4" status="3">
                <title>DICOM JSON Structured Report Schemas (Informative)</title>
                <para>The following suggested JSON Schemas for the Content File and Business Names File are informative only, and do not validate all of the constraints required by the Standard.</para>
                <para>These schemas have the following characteristics:</para>
                <itemizedlist>
                    <listitem>
                        <para>They use a draft-specific JSON Schema; for some validators, this is required, for others it may need to be generic, e.g., ""http://json-schema.org/schema#"</para>
                    </listitem>
                    <listitem>
                        <para>The identifiers ("$id") of the Schemas are only proposed and should not be relied on as standard; also note that earlier drafts of JSON Schema used a property of "id" instead of "$id"</para>
                    </listitem>
                </itemizedlist>
                <section xml:id="sect_B.3.4.1" label="B.3.4.1" status="4">
                    <title>DICOM JSON Structured Report Content File Schema</title>
                    <para>This Schema has the following characteristics:</para>
                    <itemizedlist>
                        <listitem>
                            <para>It validates only selected top level Data Set entries, as a means of exemplifying how to validate certain constructs for mandatory attributes</para>
                        </listitem>
                        <listitem>
                            <para>It depends on the Business Name "ImagingMeasurementReport" to detect the root SR Content Tree entry, which is otherwise not distinguishable</para>
                        </listitem>
                        <listitem>
                            <para>Value Type specific content is not yet validated</para>
                        </listitem>
                    </itemizedlist>
                    <programlisting><![CDATA[
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://dicomstandard.org/resources/json-sr.json",
  
  "definitions": {
      "ContentItem" : {
        "type":  "array",
        "items": [
            {
                "type": "object",
                 "propertyNames": {
                     "pattern": "^_[A-Za-z0-9]+$"
                 },
                 "additionalProperties": { "type": [ "string", "number" ] }
            },
            {
                  "type": [ "string", "array" ],
                  "propertyNames": {
                        "pattern": "^[A-Za-z0-9]+$"
                   }
            },
            {
                "type": "array",
                "items": [
                    { "$ref": "#/definitions/ContentItem" }
                ]
            }
         ]
      }
  },
  
  "type": "array",
  
  "items": [
    {
      "type": "object",
        "propertyNames": {
          "pattern": "^[A-Za-z0-9]+$"
        },
        "additionalProperties": { "type": [ "string", "array", "object", "null" ] },
        "properties": {
        "SOPClassUID": {
          "type": [ "string", "array" ]
        },
        "SOPInstanceUID": {
          "type": [ "string", "array" ]
        },
        "PatientName": {
          "type": [ "object", "null" ],
          "properties": {
            "Value": {
              "type": "array",
              "items": [
                {
                  "type": "object",
                  "properties": {
                    "Alphabetic": {
                      "type": [ "string", "null" ]
                    },
                    "Ideographic": {
                      "type": [ "string", "null" ]
                    },
                    "Phonetic": {
                      "type": [ "string", "null" ]
                    }
                  },
                  "required": [
                    "Alphabetic"
                  ]
                }
              ]
            }
          },
          "required": [
            "Value"
          ]
        },
        "CurrentRequestedProcedureEvidenceSequence": {
          "type": "object",
          "properties": {
            "Value": {
              "type": "array",
              "items": [
                {
                  "type": "object",
                  "properties": {
                    "ReferencedSeriesSequence": {
                      "type": "object",
                      "properties": {
                        "Value": {
                          "type": "array",
                          "items": [
                            {
                              "type": "object",
                              "properties": {
                                "ReferencedSOPSequence": {
                                  "type": "object",
                                  "properties": {
                                    "Value": {
                                      "type": "array",
                                      "items": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "ReferencedSOPClassUID": {
                                              "type": "string"
                                            },
                                            "ReferencedSOPInstanceUID": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "ReferencedSOPClassUID",
                                            "ReferencedSOPInstanceUID"
                                          ]
                                        }
                                      ]
                                    }
                                  },
                                  "required": [
                                    "Value"
                                  ]
                                },
                                "SeriesInstanceUID": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "ReferencedSOPSequence",
                                "SeriesInstanceUID"
                              ]
                            }
                          ]
                        }
                      },
                      "required": [
                        "Value"
                      ]
                    },
                    "StudyInstanceUID": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "ReferencedSeriesSequence",
                    "StudyInstanceUID"
                  ]
                }
              ]
            }
          },
          "required": [
            "Value"
          ]
        },
        "CompletionFlag": {
          "type": "string",
           "pattern": "^(PARTIAL|COMPLETE)$"
        },
        "VerificationFlag": {
          "type": "string",
           "pattern": "^(UNVERIFIED|VERIFIED)$"
        },
        
        "ImagingMeasurementReport": { "$ref": "#/definitions/ContentItem" }
        
      },
      "required": [
        "SOPClassUID",
        "SOPInstanceUID",
        "PatientName",
        "CurrentRequestedProcedureEvidenceSequence",
        "CompletionFlag",
        "VerificationFlag"
      ]
    }
  ]
}
]]></programlisting>
                </section>
                <section xml:id="sect_B.3.4.2" label="B.3.4.2" status="4">
                    <title>DICOM JSON Structured Report Business Names File Schema</title>
                    <para>This Schema has the following characteristics:</para>
                    <itemizedlist>
                        <listitem>
                            <para>The properties of the array are specified as "additionalProperties", since the Business Names are user-defined.</para>
                        </listitem>
                        <listitem>
                            <para>The "additionalProperties" nested "pattern" and "properties" entries do not appear to be recognized by the validators tested (i.e., are not checked).</para>
                        </listitem>
                    </itemizedlist>
                    <programlisting><![CDATA[
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "items": [
    {
     "additionalProperties": {
          "type": "object",
          "pattern": "^[A-Za-z0-9]+$",
          "properties": {
            "_cv": {
              "type": "string"
            },
            "_csd": {
              "type": "string"
            },
            "_cm": {
              "type": "string"
            },
            "_vt": {
              "type": "array",
              "items": [
                {
                  "type": "string",
                  "pattern": "^(TEXT|NUM|CODE|DATE|TIME|DATETIME|UIDREF|PNAME|COMPOSITE|IMAGE|WAVEFORM|SCOORD|SCOORD3D|TCOORD|CONTAINER)$"
                }
              ]
            },
            "_rt": {
              "type": "array",
              "items": [
                {
                  "type": "string",
                  "pattern": "^(CONTAINS|HAS PROPERTIES|HAS OBS CONTEXT|HAS ACQ CONTEXT|INFERRED FROM|SELECTED FROM|HAS CONCEPT MOD)$"
                }
              ]
            }
          },
          "required": [
            "_cv",
            "_csd",
            "_cm"
          ]
      }
    }
  ]
}
]]></programlisting>
                </section>
                </section>
        </section>
    </chapter>






    
    <chapter label="F" status="1" xml:id="chapter_F">
        <title>DICOM JSON Model</title>
        <informaltable rules="all" frame="box">
            <tr>
                <td>
                    <para><emphasis role="italic">Amend PS3.18 as follows (changes to existing text
                        are bold and <emphasis role="bold"><emphasis role="underline"
                            >underlined</emphasis></emphasis> for additions and <emphasis role="bold"
                                ><emphasis role="strikethrough">struckthrough</emphasis></emphasis> for
                        removals):</emphasis></para>
                </td>
            </tr>
        </informaltable>
        <section label="F.1" status="2" xml:id="sect_F.1">
            <title>Introduction to JavaScript Object Notation (JSON)</title>
            <para xml:id="para_0ae6e059-ed41-42bc-bbc6-ec6214fefa37"><emphasis role="bold"><emphasis role="strikethrough">JSON is a text-based open standard, derived from JavaScript, for representing data structures and associated arrays. It is language-independent, and primarily used for serializing and transmitting lightweight structured data over a network connection. It is described in detail by the Internet Engineering Task Force (IETF) in <xref linkend="biblio_RFC_4627"/>, available at <link xl:href="http://www.ietf.org/rfc/rfc4627.txt"/>.</emphasis></emphasis></para>
            <para><emphasis role="bold"><emphasis role="underline">See PS3.23 <xref linkend="sect_B.2.1" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_B.2.2" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            <para xml:id="para_838562fa-2db9-4202-b072-6accb6d91852"><emphasis role="bold"><emphasis role="strikethrough">The DICOM JSON Model complements the XML-based Native DICOM Model, by providing a lightweight representation of data returned by DICOM web services. While this representation can be used to encode any type of DICOM Data Set it is expected to be used by client applications, especially mobile clients, such as described in the QIDO-RS use cases (see <olink targetdoc="PS3.17" targetptr="chapter_HHH" xrefstyle="template:Annex %n “%t” in PS3.17"/>).</emphasis></emphasis></para>
        </section>
        <informaltable rules="all" frame="box">
            <tr>
                <td>
                    <para><emphasis role="italic">Amend PS3.18 to delete the entire contents of the following sections that have been moved to PS3.23
                        and replace them with a statement that they are retired and with a reference to the new location in PS.23:</emphasis></para>
                </td>
            </tr>
        </informaltable>
        <section label="F.2" status="2" xml:id="sect_F.2">
            <title>DICOM JSON Model</title>
            <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_B.2.2" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_B.2.2" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
        </section>
        <section label="F.3" status="2" xml:id="sect_F.3">
            <title>Transformation with other DICOM Formats</title>
            <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_B.2.3" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_B.2.3" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
        </section>
        <section label="F.4" status="2" xml:id="sect_F.4">
            <title>DICOM JSON Model Example</title>
            <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_B.2.4" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_B.2.4" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
        </section>
    </chapter>
    
    
    
    
    
    

    <chapter label="A" status="1" xml:id="chapter_A">
        <title>Data Exchange Models</title>
        <informaltable rules="all" frame="box">
            <tr>
                <td>
                    <para><emphasis role="italic">Amend PS3.19 to delete the entire contents of the following sections that have been moved to PS3.23
                        and replace them with a statement that they are retired and with a reference to the new location in PS.23:</emphasis></para>
                </td>
            </tr>
        </informaltable>
        <section label="A.1" status="2" xml:id="sect_A.1">
            <title>Native DICOM Model</title>
            <section label="A.1.1" status="3" xml:id="sect_A.1.1">
                <title>Usage</title>
                <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_A.2.1.1" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_A.2.1.1" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            </section>
            <section label="A.1.2" status="3" xml:id="sect_A.1.2">
                <title>Identification</title>
                <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_A.2.1.2" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_A.2.1.2" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            </section>
            <section label="A.1.3" status="3" xml:id="sect_A.1.3">
                <title>Support</title>
                <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_A.2.1.3" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_A.2.1.3" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            </section>
            <section label="A.1.4" status="3" xml:id="sect_A.1.4">
                <title>Information Model</title>
                <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_A.2.1.4" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_A.2.1.4" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            </section>
            <section label="A.1.5" status="3" xml:id="sect_A.1.5">
                <title>Description</title>
                <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_A.2.1.5" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_A.2.1.5" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            </section>
            <section label="A.1.6" status="3" xml:id="sect_A.1.6">
                <title>Schema</title>
                <para><emphasis role="bold"><emphasis role="underline">Retired. Se PS3.23e <xref linkend="sect_A.2.1.6" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_A.2.1.6" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            </section>
            <section label="A.1.7" status="3" xml:id="sect_A.1.7">
                <title>Examples</title>
                <para><emphasis role="bold"><emphasis role="underline">Retired. See PS3.23 <xref linkend="sect_A.2.1.7" xrefstyle="select: label quotedtitle"/><!--<olink targetdoc="PS3.23" targetptr="sect_A.2.1.7" xrefstyle="template:Section %n “%t” in PS3.23"/>-->.</emphasis></emphasis></para>
            </section>
        </section>
    </chapter>
    
    

    
</book>
