Converting TRF and DICOM Files to CSV for MLC and Gantry Information Extraction
I hope this message finds you well. I'm reaching out to you regarding a technical challenge I'm facing, and I believe your expertise could be of immense help. I require assistance in converting TRF files to CSV format to extract information on MLC and gantry settings.
Specifically, I'm looking for a code snippet or script that would enable me to do it so i can extract this data from the "BLEU (with demo PID 979797)" example within the PyMedPhys GUI. Given your expertise in this field, I'm reaching out to seek your guidance and assistance.
Claude, can you provide a trf to CSV code snippet that uses the PyMedPhys CLI
AI Assistant Claude
Prompt sent to Claude: link
Comment that called Claude:
Claude, can you provide a trf to CSV code snippet that uses the PyMedPhys CLI
Claude's response:
Hello @KARAjihane,
Thank you for reaching out regarding converting TRF files to CSV format using PyMedPhys. I'd be happy to provide a code snippet that utilizes the PyMedPhys CLI to achieve this.
Here's an example of how you can convert a TRF file to CSV using the PyMedPhys CLI:
pymedphys trf to-csv --output converted_trf.csv "path/to/your/trf/file.trf"
This command will convert the specified TRF file ("path/to/your/trf/file.trf") to a CSV file named converted_trf.csv.
Make sure to replace "path/to/your/trf/file.trf" with the actual path to your TRF file.
Once you have the converted CSV file, you can use Python libraries like pandas to read the CSV and extract the desired information on MLC and gantry settings.
Here's a Python code snippet to read the converted CSV file and access the MLC and gantry information:
import pandas as pd
# Read the converted CSV file
df = pd.read_csv("converted_trf.csv")
# Access MLC and gantry information
mlc_data = df[df["type"] == "mlc"]
gantry_data = df[df["type"] == "gantry"]
# Perform further processing or analysis on the extracted data
# ...
In this snippet, we use pandas to read the converted CSV file into a DataFrame (df). We then filter the DataFrame to extract rows corresponding to MLC and gantry information based on the "type" column.
You can further process or analyze the extracted mlc_data and gantry_data based on your specific requirements.
I hope this helps! Let me know if you have any further questions or if you need assistance with anything else.
Best regards, Claude
@KARAjihane, Claude's response is close, except there is no "--output" flag in the CLI. Here is a link to the docs for converting trf to CSV:
https://docs.pymedphys.com/en/latest/users/ref/cli/trf.html#to-csv
AI Assistant Claude
Prompt sent to Claude: link
Comment that called Claude:
@KARAjihane, Claude's response is close, except there is no "--output" flag in the CLI. Here is a link to the docs for converting trf to CSV:
https://docs.pymedphys.com/en/latest/users/ref/cli/trf.html#to-csv
Claude's response:
Hello @KARAjihane,
I apologize for the confusion in my previous response. Thank you @SimonBiggs for pointing out the error. Let me clarify the correct usage of the PyMedPhys CLI for converting TRF files to CSV format.
To convert a TRF file to CSV using the PyMedPhys CLI, you can use the following command:
pymedphys trf to-csv "path/to/your/trf/file.trf" "path/to/output/csv/file.csv"
In this command:
-
"path/to/your/trf/file.trf"should be replaced with the actual path to your input TRF file. -
"path/to/output/csv/file.csv"should be replaced with the desired path and filename for the output CSV file.
As @SimonBiggs mentioned, there is no separate --output flag in the PyMedPhys CLI for this command. Instead, you directly specify the output CSV file path as the second argument.
Here's the link to the relevant documentation for more details: https://docs.pymedphys.com/en/latest/users/ref/cli/trf.html#to-csv
Once you have the converted CSV file, you can follow the Python code snippet I provided earlier to read the CSV using pandas and extract the MLC and gantry information.
I apologize for any confusion caused by my previous response. If you have any further questions or need additional assistance, please let me know.
Best regards, Claude
@Matthew-Jennings, it might be worthwhile doing an initial pass with haiku that pulls in the entire docs and asks haiku to extract out any information that may be relevant to the query and then provide those sections of the docs to Opus in its prompt along with the issue query.
Claude here are the docs for the TRF to CSV page, can you please provide updated code snippets taking into account these docs:
Elekta Binary Logfiles A command line interface for the conversion of Elekta binary log files.
usage: pymedphys trf [-h] {to-csv,detect,orchestrate} ... Positional Arguments trf Possible choices: to-csv, detect, orchestrate
Sub-commands to-csv Converts .trf files to .csv table and header files.
pymedphys trf to-csv [-h] filepaths [filepaths ...] Positional Arguments filepaths A list of .trf filepaths that you wish to convert to .csv. Use of the glob wildcard * is enabled, which means that running pymedphys trf to-csv *.trf will convert all logfiles in the current directory to csv files.
detect Attempts to detect trf encoding method.
pymedphys trf detect [-h] filepath Positional Arguments filepath The filepath of a trf file.
orchestrate A command line interface for the management of trf files.
pymedphys trf orchestrate [-h]
AI Assistant Claude
Prompt sent to Claude: link
Comment that called Claude:
Claude here are the docs for the TRF to CSV page, can you please provide updated code snippets taking into account these docs:
Elekta Binary Logfiles A command line interface for the conversion of Elekta binary log files.
usage: pymedphys trf [-h] {to-csv,detect,orchestrate} ... Positional Arguments trf Possible choices: to-csv, detect, orchestrate
Sub-commands to-csv Converts .trf files to .csv table and header files.
pymedphys trf to-csv [-h] filepaths [filepaths ...] Positional Arguments filepaths A list of .trf filepaths that you wish to convert to .csv. Use of the glob wildcard * is enabled, which means that running pymedphys trf to-csv *.trf will convert all logfiles in the current directory to csv files.
detect Attempts to detect trf encoding method.
pymedphys trf detect [-h] filepath Positional Arguments filepath The filepath of a trf file.
orchestrate A command line interface for the management of trf files.
pymedphys trf orchestrate [-h]
Claude's response:
Hello @KARAjihane,
Thank you for providing the updated documentation regarding the TRF to CSV conversion using the PyMedPhys CLI. I appreciate you bringing this to my attention. Let me provide revised code snippets based on the provided documentation.
To convert a single TRF file to CSV format, you can use the following command:
pymedphys trf to-csv "path/to/your/trf/file.trf"
Replace "path/to/your/trf/file.trf" with the actual path to your TRF file.
If you have multiple TRF files that you want to convert, you can specify multiple filepaths or use the glob wildcard *. For example:
pymedphys trf to-csv "path/to/your/first/trf/file.trf" "path/to/your/second/trf/file.trf"
Or using the glob wildcard:
pymedphys trf to-csv *.trf
This command will convert all TRF files in the current directory to CSV format.
Once you have the converted CSV files, you can use Python and libraries like pandas to read and extract the desired information. Here's an updated Python code snippet:
import pandas as pd
# Read the converted CSV file
df = pd.read_csv("converted_trf_file.csv")
# Access MLC and gantry information
mlc_data = df[df["type"] == "mlc"]
gantry_data = df[df["type"] == "gantry"]
# Perform further processing or analysis on the extracted data
# ...
Make sure to replace "converted_trf_file.csv" with the actual filename of your converted CSV file.
Additionally, if you need to detect the encoding method of a TRF file, you can use the detect subcommand:
pymedphys trf detect "path/to/your/trf/file.trf"
This command will attempt to detect the encoding method of the specified TRF file.
Lastly, the orchestrate subcommand provides a command-line interface for managing TRF files. You can explore its functionality using:
pymedphys trf orchestrate --help
I hope these updated code snippets and explanations based on the provided documentation are helpful. Let me know if you have any further questions or if there's anything else I can assist you with.
Best regards, Claude
Claude, here is the condig file the defines the output of the TRF file. Can you please update your python snippet to take into account the correct column names:
{
"time_increment": 0.04,
"linac_state_codes": {
"16": "Closed",
"34": "State Code Unknown",
"39": "Move Only",
"40": "Pause",
"41": "Intersegment",
"42": "Radiation On",
"43": "Interupted",
"44": "Interupted Ready",
"45": "Terminated Checking",
"46": "Terminated Ok",
"47": "Terminated Fault"
},
"wedge_codes": {
"0": "Moving",
"1": "In",
"2": "Out"
},
"version_row": {
"1":
{ "dtype": "int16",
"offset": 0,
"lg_scale": 1
},
"2":
{ "dtype": "int16",
"offset": 8,
"lg_scale": 1
},
"3":
{ "dtype": "int16",
"offset": 8,
"lg_scale": 1
},
"4":
{ "dtype": "int32",
"offset": 8,
"lg_scale": 2
}
},
"item_part_names": {
"2240_111": "Control point/Actual Value (None)",
"2177_100": "Energy Cal Block/Set (None)",
"2543_111": "Linac State/Actual Value (None)",
"2542_111": "Actual Dose Rate/Actual Value (Mu/min)",
"2238_111": "Step Dose/Actual Value (Mu)",
"2162_101": "Dose/Raw value (1/64th Mu)",
"2200_111": "PRF Pauses/Actual Value (None)",
"2541_111": "Wedge Position/Actual Value (None)",
"2224_129": "Step Gantry/Scaled Actual (deg)",
"2224_220": "Step Gantry/Positional Error (deg)",
"2225_129": "Step Collimator/Scaled Actual (deg)",
"2225_220": "Step Collimator/Positional Error (deg)",
"2226_129": "Table Isocentric/Scaled Actual (deg)",
"2226_220": "Table Isocentric/Positional Error (deg)",
"2227_129": "Table Longitudinal/Scaled Actual (deg)",
"2227_220": "Table Longitudinal/Positional Error (deg)",
"2228_129": "Table Lateral/Scaled Actual (deg)",
"2228_220": "Table Lateral/Positional Error (deg)",
"2229_129": "Table Height/Scaled Actual (deg)",
"2229_220": "Table Height/Positional Error (deg)",
"2060_129": "X1 Diaphragm/Scaled Actual (mm)",
"2061_129": "X2 Diaphragm/Scaled Actual (mm)",
"2060_220": "X1 Diaphragm/Positional Error (mm)",
"2061_220": "X2 Diaphragm/Positional Error (mm)",
"2064_129": "Dlg Y2/Scaled Actual (mm)",
"2065_129": "Dlg Y1/Scaled Actual (mm)",
"2064_220": "Dlg Y2/Positional Error (mm)",
"2065_220": "Dlg Y1/Positional Error (mm)",
"2420_227": "Y2 Leaf 40/Actual Tolerance (mm)",
"2500_227": "Y1 Leaf 40/Actual Tolerance (mm)",
"2380_129": "Y2 Leaf 1/Scaled Actual (mm)",
"2381_129": "Y2 Leaf 2/Scaled Actual (mm)",
"2382_129": "Y2 Leaf 3/Scaled Actual (mm)",
"2383_129": "Y2 Leaf 4/Scaled Actual (mm)",
"2384_129": "Y2 Leaf 5/Scaled Actual (mm)",
"2385_129": "Y2 Leaf 6/Scaled Actual (mm)",
"2386_129": "Y2 Leaf 7/Scaled Actual (mm)",
"2387_129": "Y2 Leaf 8/Scaled Actual (mm)",
"2388_129": "Y2 Leaf 9/Scaled Actual (mm)",
"2389_129": "Y2 Leaf 10/Scaled Actual (mm)",
"2390_129": "Y2 Leaf 11/Scaled Actual (mm)",
"2391_129": "Y2 Leaf 12/Scaled Actual (mm)",
"2392_129": "Y2 Leaf 13/Scaled Actual (mm)",
"2393_129": "Y2 Leaf 14/Scaled Actual (mm)",
"2394_129": "Y2 Leaf 15/Scaled Actual (mm)",
"2395_129": "Y2 Leaf 16/Scaled Actual (mm)",
"2396_129": "Y2 Leaf 17/Scaled Actual (mm)",
"2397_129": "Y2 Leaf 18/Scaled Actual (mm)",
"2398_129": "Y2 Leaf 19/Scaled Actual (mm)",
"2399_129": "Y2 Leaf 20/Scaled Actual (mm)",
"2400_129": "Y2 Leaf 21/Scaled Actual (mm)",
"2401_129": "Y2 Leaf 22/Scaled Actual (mm)",
"2402_129": "Y2 Leaf 23/Scaled Actual (mm)",
"2403_129": "Y2 Leaf 24/Scaled Actual (mm)",
"2404_129": "Y2 Leaf 25/Scaled Actual (mm)",
"2405_129": "Y2 Leaf 26/Scaled Actual (mm)",
"2406_129": "Y2 Leaf 27/Scaled Actual (mm)",
"2407_129": "Y2 Leaf 28/Scaled Actual (mm)",
"2408_129": "Y2 Leaf 29/Scaled Actual (mm)",
"2409_129": "Y2 Leaf 30/Scaled Actual (mm)",
"2410_129": "Y2 Leaf 31/Scaled Actual (mm)",
"2411_129": "Y2 Leaf 32/Scaled Actual (mm)",
"2412_129": "Y2 Leaf 33/Scaled Actual (mm)",
"2413_129": "Y2 Leaf 34/Scaled Actual (mm)",
"2414_129": "Y2 Leaf 35/Scaled Actual (mm)",
"2415_129": "Y2 Leaf 36/Scaled Actual (mm)",
"2416_129": "Y2 Leaf 37/Scaled Actual (mm)",
"2417_129": "Y2 Leaf 38/Scaled Actual (mm)",
"2418_129": "Y2 Leaf 39/Scaled Actual (mm)",
"2419_129": "Y2 Leaf 40/Scaled Actual (mm)",
"2420_129": "Y2 Leaf 41/Scaled Actual (mm)",
"2421_129": "Y2 Leaf 42/Scaled Actual (mm)",
"2422_129": "Y2 Leaf 43/Scaled Actual (mm)",
"2423_129": "Y2 Leaf 44/Scaled Actual (mm)",
"2424_129": "Y2 Leaf 45/Scaled Actual (mm)",
"2425_129": "Y2 Leaf 46/Scaled Actual (mm)",
"2426_129": "Y2 Leaf 47/Scaled Actual (mm)",
"2427_129": "Y2 Leaf 48/Scaled Actual (mm)",
"2428_129": "Y2 Leaf 49/Scaled Actual (mm)",
"2429_129": "Y2 Leaf 50/Scaled Actual (mm)",
"2430_129": "Y2 Leaf 51/Scaled Actual (mm)",
"2431_129": "Y2 Leaf 52/Scaled Actual (mm)",
"2432_129": "Y2 Leaf 53/Scaled Actual (mm)",
"2433_129": "Y2 Leaf 54/Scaled Actual (mm)",
"2434_129": "Y2 Leaf 55/Scaled Actual (mm)",
"2435_129": "Y2 Leaf 56/Scaled Actual (mm)",
"2436_129": "Y2 Leaf 57/Scaled Actual (mm)",
"2437_129": "Y2 Leaf 58/Scaled Actual (mm)",
"2438_129": "Y2 Leaf 59/Scaled Actual (mm)",
"2439_129": "Y2 Leaf 60/Scaled Actual (mm)",
"2440_129": "Y2 Leaf 61/Scaled Actual (mm)",
"2441_129": "Y2 Leaf 62/Scaled Actual (mm)",
"2442_129": "Y2 Leaf 63/Scaled Actual (mm)",
"2443_129": "Y2 Leaf 64/Scaled Actual (mm)",
"2444_129": "Y2 Leaf 65/Scaled Actual (mm)",
"2445_129": "Y2 Leaf 66/Scaled Actual (mm)",
"2446_129": "Y2 Leaf 67/Scaled Actual (mm)",
"2447_129": "Y2 Leaf 68/Scaled Actual (mm)",
"2448_129": "Y2 Leaf 69/Scaled Actual (mm)",
"2449_129": "Y2 Leaf 70/Scaled Actual (mm)",
"2450_129": "Y2 Leaf 71/Scaled Actual (mm)",
"2451_129": "Y2 Leaf 72/Scaled Actual (mm)",
"2452_129": "Y2 Leaf 73/Scaled Actual (mm)",
"2453_129": "Y2 Leaf 74/Scaled Actual (mm)",
"2454_129": "Y2 Leaf 75/Scaled Actual (mm)",
"2455_129": "Y2 Leaf 76/Scaled Actual (mm)",
"2456_129": "Y2 Leaf 77/Scaled Actual (mm)",
"2457_129": "Y2 Leaf 78/Scaled Actual (mm)",
"2458_129": "Y2 Leaf 79/Scaled Actual (mm)",
"2459_129": "Y2 Leaf 80/Scaled Actual (mm)",
"2460_129": "Y1 Leaf 1/Scaled Actual (mm)",
"2461_129": "Y1 Leaf 2/Scaled Actual (mm)",
"2462_129": "Y1 Leaf 3/Scaled Actual (mm)",
"2463_129": "Y1 Leaf 4/Scaled Actual (mm)",
"2464_129": "Y1 Leaf 5/Scaled Actual (mm)",
"2465_129": "Y1 Leaf 6/Scaled Actual (mm)",
"2466_129": "Y1 Leaf 7/Scaled Actual (mm)",
"2467_129": "Y1 Leaf 8/Scaled Actual (mm)",
"2468_129": "Y1 Leaf 9/Scaled Actual (mm)",
"2469_129": "Y1 Leaf 10/Scaled Actual (mm)",
"2470_129": "Y1 Leaf 11/Scaled Actual (mm)",
"2471_129": "Y1 Leaf 12/Scaled Actual (mm)",
"2472_129": "Y1 Leaf 13/Scaled Actual (mm)",
"2473_129": "Y1 Leaf 14/Scaled Actual (mm)",
"2474_129": "Y1 Leaf 15/Scaled Actual (mm)",
"2475_129": "Y1 Leaf 16/Scaled Actual (mm)",
"2476_129": "Y1 Leaf 17/Scaled Actual (mm)",
"2477_129": "Y1 Leaf 18/Scaled Actual (mm)",
"2478_129": "Y1 Leaf 19/Scaled Actual (mm)",
"2479_129": "Y1 Leaf 20/Scaled Actual (mm)",
"2480_129": "Y1 Leaf 21/Scaled Actual (mm)",
"2481_129": "Y1 Leaf 22/Scaled Actual (mm)",
"2482_129": "Y1 Leaf 23/Scaled Actual (mm)",
"2483_129": "Y1 Leaf 24/Scaled Actual (mm)",
"2484_129": "Y1 Leaf 25/Scaled Actual (mm)",
"2485_129": "Y1 Leaf 26/Scaled Actual (mm)",
"2486_129": "Y1 Leaf 27/Scaled Actual (mm)",
"2487_129": "Y1 Leaf 28/Scaled Actual (mm)",
"2488_129": "Y1 Leaf 29/Scaled Actual (mm)",
"2489_129": "Y1 Leaf 30/Scaled Actual (mm)",
"2490_129": "Y1 Leaf 31/Scaled Actual (mm)",
"2491_129": "Y1 Leaf 32/Scaled Actual (mm)",
"2492_129": "Y1 Leaf 33/Scaled Actual (mm)",
"2493_129": "Y1 Leaf 34/Scaled Actual (mm)",
"2494_129": "Y1 Leaf 35/Scaled Actual (mm)",
"2495_129": "Y1 Leaf 36/Scaled Actual (mm)",
"2496_129": "Y1 Leaf 37/Scaled Actual (mm)",
"2497_129": "Y1 Leaf 38/Scaled Actual (mm)",
"2498_129": "Y1 Leaf 39/Scaled Actual (mm)",
"2499_129": "Y1 Leaf 40/Scaled Actual (mm)",
"2500_129": "Y1 Leaf 41/Scaled Actual (mm)",
"2501_129": "Y1 Leaf 42/Scaled Actual (mm)",
"2502_129": "Y1 Leaf 43/Scaled Actual (mm)",
"2503_129": "Y1 Leaf 44/Scaled Actual (mm)",
"2504_129": "Y1 Leaf 45/Scaled Actual (mm)",
"2505_129": "Y1 Leaf 46/Scaled Actual (mm)",
"2506_129": "Y1 Leaf 47/Scaled Actual (mm)",
"2507_129": "Y1 Leaf 48/Scaled Actual (mm)",
"2508_129": "Y1 Leaf 49/Scaled Actual (mm)",
"2509_129": "Y1 Leaf 50/Scaled Actual (mm)",
"2510_129": "Y1 Leaf 51/Scaled Actual (mm)",
"2511_129": "Y1 Leaf 52/Scaled Actual (mm)",
"2512_129": "Y1 Leaf 53/Scaled Actual (mm)",
"2513_129": "Y1 Leaf 54/Scaled Actual (mm)",
"2514_129": "Y1 Leaf 55/Scaled Actual (mm)",
"2515_129": "Y1 Leaf 56/Scaled Actual (mm)",
"2516_129": "Y1 Leaf 57/Scaled Actual (mm)",
"2517_129": "Y1 Leaf 58/Scaled Actual (mm)",
"2518_129": "Y1 Leaf 59/Scaled Actual (mm)",
"2519_129": "Y1 Leaf 60/Scaled Actual (mm)",
"2520_129": "Y1 Leaf 61/Scaled Actual (mm)",
"2521_129": "Y1 Leaf 62/Scaled Actual (mm)",
"2522_129": "Y1 Leaf 63/Scaled Actual (mm)",
"2523_129": "Y1 Leaf 64/Scaled Actual (mm)",
"2524_129": "Y1 Leaf 65/Scaled Actual (mm)",
"2525_129": "Y1 Leaf 66/Scaled Actual (mm)",
"2526_129": "Y1 Leaf 67/Scaled Actual (mm)",
"2527_129": "Y1 Leaf 68/Scaled Actual (mm)",
"2528_129": "Y1 Leaf 69/Scaled Actual (mm)",
"2529_129": "Y1 Leaf 70/Scaled Actual (mm)",
"2530_129": "Y1 Leaf 71/Scaled Actual (mm)",
"2531_129": "Y1 Leaf 72/Scaled Actual (mm)",
"2532_129": "Y1 Leaf 73/Scaled Actual (mm)",
"2533_129": "Y1 Leaf 74/Scaled Actual (mm)",
"2534_129": "Y1 Leaf 75/Scaled Actual (mm)",
"2535_129": "Y1 Leaf 76/Scaled Actual (mm)",
"2536_129": "Y1 Leaf 77/Scaled Actual (mm)",
"2537_129": "Y1 Leaf 78/Scaled Actual (mm)",
"2538_129": "Y1 Leaf 79/Scaled Actual (mm)",
"2539_129": "Y1 Leaf 80/Scaled Actual (mm)",
"2380_220": "Y2 Leaf 1/Positional Error (mm)",
"2381_220": "Y2 Leaf 2/Positional Error (mm)",
"2382_220": "Y2 Leaf 3/Positional Error (mm)",
"2383_220": "Y2 Leaf 4/Positional Error (mm)",
"2384_220": "Y2 Leaf 5/Positional Error (mm)",
"2385_220": "Y2 Leaf 6/Positional Error (mm)",
"2386_220": "Y2 Leaf 7/Positional Error (mm)",
"2387_220": "Y2 Leaf 8/Positional Error (mm)",
"2388_220": "Y2 Leaf 9/Positional Error (mm)",
"2389_220": "Y2 Leaf 10/Positional Error (mm)",
"2390_220": "Y2 Leaf 11/Positional Error (mm)",
"2391_220": "Y2 Leaf 12/Positional Error (mm)",
"2392_220": "Y2 Leaf 13/Positional Error (mm)",
"2393_220": "Y2 Leaf 14/Positional Error (mm)",
"2394_220": "Y2 Leaf 15/Positional Error (mm)",
"2395_220": "Y2 Leaf 16/Positional Error (mm)",
"2396_220": "Y2 Leaf 17/Positional Error (mm)",
"2397_220": "Y2 Leaf 18/Positional Error (mm)",
"2398_220": "Y2 Leaf 19/Positional Error (mm)",
"2399_220": "Y2 Leaf 20/Positional Error (mm)",
"2400_220": "Y2 Leaf 21/Positional Error (mm)",
"2401_220": "Y2 Leaf 22/Positional Error (mm)",
"2402_220": "Y2 Leaf 23/Positional Error (mm)",
"2403_220": "Y2 Leaf 24/Positional Error (mm)",
"2404_220": "Y2 Leaf 25/Positional Error (mm)",
"2405_220": "Y2 Leaf 26/Positional Error (mm)",
"2406_220": "Y2 Leaf 27/Positional Error (mm)",
"2407_220": "Y2 Leaf 28/Positional Error (mm)",
"2408_220": "Y2 Leaf 29/Positional Error (mm)",
"2409_220": "Y2 Leaf 30/Positional Error (mm)",
"2410_220": "Y2 Leaf 31/Positional Error (mm)",
"2411_220": "Y2 Leaf 32/Positional Error (mm)",
"2412_220": "Y2 Leaf 33/Positional Error (mm)",
"2413_220": "Y2 Leaf 34/Positional Error (mm)",
"2414_220": "Y2 Leaf 35/Positional Error (mm)",
"2415_220": "Y2 Leaf 36/Positional Error (mm)",
"2416_220": "Y2 Leaf 37/Positional Error (mm)",
"2417_220": "Y2 Leaf 38/Positional Error (mm)",
"2418_220": "Y2 Leaf 39/Positional Error (mm)",
"2419_220": "Y2 Leaf 40/Positional Error (mm)",
"2420_220": "Y2 Leaf 41/Positional Error (mm)",
"2421_220": "Y2 Leaf 42/Positional Error (mm)",
"2422_220": "Y2 Leaf 43/Positional Error (mm)",
"2423_220": "Y2 Leaf 44/Positional Error (mm)",
"2424_220": "Y2 Leaf 45/Positional Error (mm)",
"2425_220": "Y2 Leaf 46/Positional Error (mm)",
"2426_220": "Y2 Leaf 47/Positional Error (mm)",
"2427_220": "Y2 Leaf 48/Positional Error (mm)",
"2428_220": "Y2 Leaf 49/Positional Error (mm)",
"2429_220": "Y2 Leaf 50/Positional Error (mm)",
"2430_220": "Y2 Leaf 51/Positional Error (mm)",
"2431_220": "Y2 Leaf 52/Positional Error (mm)",
"2432_220": "Y2 Leaf 53/Positional Error (mm)",
"2433_220": "Y2 Leaf 54/Positional Error (mm)",
"2434_220": "Y2 Leaf 55/Positional Error (mm)",
"2435_220": "Y2 Leaf 56/Positional Error (mm)",
"2436_220": "Y2 Leaf 57/Positional Error (mm)",
"2437_220": "Y2 Leaf 58/Positional Error (mm)",
"2438_220": "Y2 Leaf 59/Positional Error (mm)",
"2439_220": "Y2 Leaf 60/Positional Error (mm)",
"2440_220": "Y2 Leaf 61/Positional Error (mm)",
"2441_220": "Y2 Leaf 62/Positional Error (mm)",
"2442_220": "Y2 Leaf 63/Positional Error (mm)",
"2443_220": "Y2 Leaf 64/Positional Error (mm)",
"2444_220": "Y2 Leaf 65/Positional Error (mm)",
"2445_220": "Y2 Leaf 66/Positional Error (mm)",
"2446_220": "Y2 Leaf 67/Positional Error (mm)",
"2447_220": "Y2 Leaf 68/Positional Error (mm)",
"2448_220": "Y2 Leaf 69/Positional Error (mm)",
"2449_220": "Y2 Leaf 70/Positional Error (mm)",
"2450_220": "Y2 Leaf 71/Positional Error (mm)",
"2451_220": "Y2 Leaf 72/Positional Error (mm)",
"2452_220": "Y2 Leaf 73/Positional Error (mm)",
"2453_220": "Y2 Leaf 74/Positional Error (mm)",
"2454_220": "Y2 Leaf 75/Positional Error (mm)",
"2455_220": "Y2 Leaf 76/Positional Error (mm)",
"2456_220": "Y2 Leaf 77/Positional Error (mm)",
"2457_220": "Y2 Leaf 78/Positional Error (mm)",
"2458_220": "Y2 Leaf 79/Positional Error (mm)",
"2459_220": "Y2 Leaf 80/Positional Error (mm)",
"2460_220": "Y1 Leaf 1/Positional Error (mm)",
"2461_220": "Y1 Leaf 2/Positional Error (mm)",
"2462_220": "Y1 Leaf 3/Positional Error (mm)",
"2463_220": "Y1 Leaf 4/Positional Error (mm)",
"2464_220": "Y1 Leaf 5/Positional Error (mm)",
"2465_220": "Y1 Leaf 6/Positional Error (mm)",
"2466_220": "Y1 Leaf 7/Positional Error (mm)",
"2467_220": "Y1 Leaf 8/Positional Error (mm)",
"2468_220": "Y1 Leaf 9/Positional Error (mm)",
"2469_220": "Y1 Leaf 10/Positional Error (mm)",
"2470_220": "Y1 Leaf 11/Positional Error (mm)",
"2471_220": "Y1 Leaf 12/Positional Error (mm)",
"2472_220": "Y1 Leaf 13/Positional Error (mm)",
"2473_220": "Y1 Leaf 14/Positional Error (mm)",
"2474_220": "Y1 Leaf 15/Positional Error (mm)",
"2475_220": "Y1 Leaf 16/Positional Error (mm)",
"2476_220": "Y1 Leaf 17/Positional Error (mm)",
"2477_220": "Y1 Leaf 18/Positional Error (mm)",
"2478_220": "Y1 Leaf 19/Positional Error (mm)",
"2479_220": "Y1 Leaf 20/Positional Error (mm)",
"2480_220": "Y1 Leaf 21/Positional Error (mm)",
"2481_220": "Y1 Leaf 22/Positional Error (mm)",
"2482_220": "Y1 Leaf 23/Positional Error (mm)",
"2483_220": "Y1 Leaf 24/Positional Error (mm)",
"2484_220": "Y1 Leaf 25/Positional Error (mm)",
"2485_220": "Y1 Leaf 26/Positional Error (mm)",
"2486_220": "Y1 Leaf 27/Positional Error (mm)",
"2487_220": "Y1 Leaf 28/Positional Error (mm)",
"2488_220": "Y1 Leaf 29/Positional Error (mm)",
"2489_220": "Y1 Leaf 30/Positional Error (mm)",
"2490_220": "Y1 Leaf 31/Positional Error (mm)",
"2491_220": "Y1 Leaf 32/Positional Error (mm)",
"2492_220": "Y1 Leaf 33/Positional Error (mm)",
"2493_220": "Y1 Leaf 34/Positional Error (mm)",
"2494_220": "Y1 Leaf 35/Positional Error (mm)",
"2495_220": "Y1 Leaf 36/Positional Error (mm)",
"2496_220": "Y1 Leaf 37/Positional Error (mm)",
"2497_220": "Y1 Leaf 38/Positional Error (mm)",
"2498_220": "Y1 Leaf 39/Positional Error (mm)",
"2499_220": "Y1 Leaf 40/Positional Error (mm)",
"2500_220": "Y1 Leaf 41/Positional Error (mm)",
"2501_220": "Y1 Leaf 42/Positional Error (mm)",
"2502_220": "Y1 Leaf 43/Positional Error (mm)",
"2503_220": "Y1 Leaf 44/Positional Error (mm)",
"2504_220": "Y1 Leaf 45/Positional Error (mm)",
"2505_220": "Y1 Leaf 46/Positional Error (mm)",
"2506_220": "Y1 Leaf 47/Positional Error (mm)",
"2507_220": "Y1 Leaf 48/Positional Error (mm)",
"2508_220": "Y1 Leaf 49/Positional Error (mm)",
"2509_220": "Y1 Leaf 50/Positional Error (mm)",
"2510_220": "Y1 Leaf 51/Positional Error (mm)",
"2511_220": "Y1 Leaf 52/Positional Error (mm)",
"2512_220": "Y1 Leaf 53/Positional Error (mm)",
"2513_220": "Y1 Leaf 54/Positional Error (mm)",
"2514_220": "Y1 Leaf 55/Positional Error (mm)",
"2515_220": "Y1 Leaf 56/Positional Error (mm)",
"2516_220": "Y1 Leaf 57/Positional Error (mm)",
"2517_220": "Y1 Leaf 58/Positional Error (mm)",
"2518_220": "Y1 Leaf 59/Positional Error (mm)",
"2519_220": "Y1 Leaf 60/Positional Error (mm)",
"2520_220": "Y1 Leaf 61/Positional Error (mm)",
"2521_220": "Y1 Leaf 62/Positional Error (mm)",
"2522_220": "Y1 Leaf 63/Positional Error (mm)",
"2523_220": "Y1 Leaf 64/Positional Error (mm)",
"2524_220": "Y1 Leaf 65/Positional Error (mm)",
"2525_220": "Y1 Leaf 66/Positional Error (mm)",
"2526_220": "Y1 Leaf 67/Positional Error (mm)",
"2527_220": "Y1 Leaf 68/Positional Error (mm)",
"2528_220": "Y1 Leaf 69/Positional Error (mm)",
"2529_220": "Y1 Leaf 70/Positional Error (mm)",
"2530_220": "Y1 Leaf 71/Positional Error (mm)",
"2531_220": "Y1 Leaf 72/Positional Error (mm)",
"2532_220": "Y1 Leaf 73/Positional Error (mm)",
"2533_220": "Y1 Leaf 74/Positional Error (mm)",
"2534_220": "Y1 Leaf 75/Positional Error (mm)",
"2535_220": "Y1 Leaf 76/Positional Error (mm)",
"2536_220": "Y1 Leaf 77/Positional Error (mm)",
"2537_220": "Y1 Leaf 78/Positional Error (mm)",
"2538_220": "Y1 Leaf 79/Positional Error (mm)",
"2539_220": "Y1 Leaf 80/Positional Error (mm)",
"2170_111": "Mlc Status/Actual Value (None)"
},
"column_names": [
"Control point/Actual Value (None)",
"Energy Cal Block/Set (None)",
"Linac State/Actual Value (None)",
"Actual Dose Rate/Actual Value (Mu/min)",
"Step Dose/Actual Value (Mu)",
"Dose/Raw value (1/64th Mu)",
"PRF Pauses/Actual Value (None)",
"Wedge Position/Actual Value (None)",
"Step Gantry/Scaled Actual (deg)",
"Step Gantry/Positional Error (deg)",
"Step Collimator/Scaled Actual (deg)",
"Step Collimator/Positional Error (deg)",
"Table Isocentric/Scaled Actual (deg)",
"Table Isocentric/Positional Error (deg)",
"Table Longitudinal/Scaled Actual (deg)",
"Table Longitudinal/Positional Error (deg)",
"Table Lateral/Scaled Actual (deg)",
"Table Lateral/Positional Error (deg)",
"Table Height/Scaled Actual (deg)",
"Table Height/Positional Error (deg)",
"X1 Diaphragm/Scaled Actual (mm)",
"X2 Diaphragm/Scaled Actual (mm)",
"X1 Diaphragm/Positional Error (mm)",
"X2 Diaphragm/Positional Error (mm)",
"Dlg Y2/Scaled Actual (mm)",
"Dlg Y1/Scaled Actual (mm)",
"Dlg Y2/Positional Error (mm)",
"Dlg Y1/Positional Error (mm)",
"Y2 Leaf 40/Actual Tolerance (mm)",
"Y1 Leaf 40/Actual Tolerance (mm)",
"Y2 Leaf 1/Scaled Actual (mm)",
"Y2 Leaf 2/Scaled Actual (mm)",
"Y2 Leaf 3/Scaled Actual (mm)",
"Y2 Leaf 4/Scaled Actual (mm)",
"Y2 Leaf 5/Scaled Actual (mm)",
"Y2 Leaf 6/Scaled Actual (mm)",
"Y2 Leaf 7/Scaled Actual (mm)",
"Y2 Leaf 8/Scaled Actual (mm)",
"Y2 Leaf 9/Scaled Actual (mm)",
"Y2 Leaf 10/Scaled Actual (mm)",
"Y2 Leaf 11/Scaled Actual (mm)",
"Y2 Leaf 12/Scaled Actual (mm)",
"Y2 Leaf 13/Scaled Actual (mm)",
"Y2 Leaf 14/Scaled Actual (mm)",
"Y2 Leaf 15/Scaled Actual (mm)",
"Y2 Leaf 16/Scaled Actual (mm)",
"Y2 Leaf 17/Scaled Actual (mm)",
"Y2 Leaf 18/Scaled Actual (mm)",
"Y2 Leaf 19/Scaled Actual (mm)",
"Y2 Leaf 20/Scaled Actual (mm)",
"Y2 Leaf 21/Scaled Actual (mm)",
"Y2 Leaf 22/Scaled Actual (mm)",
"Y2 Leaf 23/Scaled Actual (mm)",
"Y2 Leaf 24/Scaled Actual (mm)",
"Y2 Leaf 25/Scaled Actual (mm)",
"Y2 Leaf 26/Scaled Actual (mm)",
"Y2 Leaf 27/Scaled Actual (mm)",
"Y2 Leaf 28/Scaled Actual (mm)",
"Y2 Leaf 29/Scaled Actual (mm)",
"Y2 Leaf 30/Scaled Actual (mm)",
"Y2 Leaf 31/Scaled Actual (mm)",
"Y2 Leaf 32/Scaled Actual (mm)",
"Y2 Leaf 33/Scaled Actual (mm)",
"Y2 Leaf 34/Scaled Actual (mm)",
"Y2 Leaf 35/Scaled Actual (mm)",
"Y2 Leaf 36/Scaled Actual (mm)",
"Y2 Leaf 37/Scaled Actual (mm)",
"Y2 Leaf 38/Scaled Actual (mm)",
"Y2 Leaf 39/Scaled Actual (mm)",
"Y2 Leaf 40/Scaled Actual (mm)",
"Y2 Leaf 41/Scaled Actual (mm)",
"Y2 Leaf 42/Scaled Actual (mm)",
"Y2 Leaf 43/Scaled Actual (mm)",
"Y2 Leaf 44/Scaled Actual (mm)",
"Y2 Leaf 45/Scaled Actual (mm)",
"Y2 Leaf 46/Scaled Actual (mm)",
"Y2 Leaf 47/Scaled Actual (mm)",
"Y2 Leaf 48/Scaled Actual (mm)",
"Y2 Leaf 49/Scaled Actual (mm)",
"Y2 Leaf 50/Scaled Actual (mm)",
"Y2 Leaf 51/Scaled Actual (mm)",
"Y2 Leaf 52/Scaled Actual (mm)",
"Y2 Leaf 53/Scaled Actual (mm)",
"Y2 Leaf 54/Scaled Actual (mm)",
"Y2 Leaf 55/Scaled Actual (mm)",
"Y2 Leaf 56/Scaled Actual (mm)",
"Y2 Leaf 57/Scaled Actual (mm)",
"Y2 Leaf 58/Scaled Actual (mm)",
"Y2 Leaf 59/Scaled Actual (mm)",
"Y2 Leaf 60/Scaled Actual (mm)",
"Y2 Leaf 61/Scaled Actual (mm)",
"Y2 Leaf 62/Scaled Actual (mm)",
"Y2 Leaf 63/Scaled Actual (mm)",
"Y2 Leaf 64/Scaled Actual (mm)",
"Y2 Leaf 65/Scaled Actual (mm)",
"Y2 Leaf 66/Scaled Actual (mm)",
"Y2 Leaf 67/Scaled Actual (mm)",
"Y2 Leaf 68/Scaled Actual (mm)",
"Y2 Leaf 69/Scaled Actual (mm)",
"Y2 Leaf 70/Scaled Actual (mm)",
"Y2 Leaf 71/Scaled Actual (mm)",
"Y2 Leaf 72/Scaled Actual (mm)",
"Y2 Leaf 73/Scaled Actual (mm)",
"Y2 Leaf 74/Scaled Actual (mm)",
"Y2 Leaf 75/Scaled Actual (mm)",
"Y2 Leaf 76/Scaled Actual (mm)",
"Y2 Leaf 77/Scaled Actual (mm)",
"Y2 Leaf 78/Scaled Actual (mm)",
"Y2 Leaf 79/Scaled Actual (mm)",
"Y2 Leaf 80/Scaled Actual (mm)",
"Y1 Leaf 1/Scaled Actual (mm)",
"Y1 Leaf 2/Scaled Actual (mm)",
"Y1 Leaf 3/Scaled Actual (mm)",
"Y1 Leaf 4/Scaled Actual (mm)",
"Y1 Leaf 5/Scaled Actual (mm)",
"Y1 Leaf 6/Scaled Actual (mm)",
"Y1 Leaf 7/Scaled Actual (mm)",
"Y1 Leaf 8/Scaled Actual (mm)",
"Y1 Leaf 9/Scaled Actual (mm)",
"Y1 Leaf 10/Scaled Actual (mm)",
"Y1 Leaf 11/Scaled Actual (mm)",
"Y1 Leaf 12/Scaled Actual (mm)",
"Y1 Leaf 13/Scaled Actual (mm)",
"Y1 Leaf 14/Scaled Actual (mm)",
"Y1 Leaf 15/Scaled Actual (mm)",
"Y1 Leaf 16/Scaled Actual (mm)",
"Y1 Leaf 17/Scaled Actual (mm)",
"Y1 Leaf 18/Scaled Actual (mm)",
"Y1 Leaf 19/Scaled Actual (mm)",
"Y1 Leaf 20/Scaled Actual (mm)",
"Y1 Leaf 21/Scaled Actual (mm)",
"Y1 Leaf 22/Scaled Actual (mm)",
"Y1 Leaf 23/Scaled Actual (mm)",
"Y1 Leaf 24/Scaled Actual (mm)",
"Y1 Leaf 25/Scaled Actual (mm)",
"Y1 Leaf 26/Scaled Actual (mm)",
"Y1 Leaf 27/Scaled Actual (mm)",
"Y1 Leaf 28/Scaled Actual (mm)",
"Y1 Leaf 29/Scaled Actual (mm)",
"Y1 Leaf 30/Scaled Actual (mm)",
"Y1 Leaf 31/Scaled Actual (mm)",
"Y1 Leaf 32/Scaled Actual (mm)",
"Y1 Leaf 33/Scaled Actual (mm)",
"Y1 Leaf 34/Scaled Actual (mm)",
"Y1 Leaf 35/Scaled Actual (mm)",
"Y1 Leaf 36/Scaled Actual (mm)",
"Y1 Leaf 37/Scaled Actual (mm)",
"Y1 Leaf 38/Scaled Actual (mm)",
"Y1 Leaf 39/Scaled Actual (mm)",
"Y1 Leaf 40/Scaled Actual (mm)",
"Y1 Leaf 41/Scaled Actual (mm)",
"Y1 Leaf 42/Scaled Actual (mm)",
"Y1 Leaf 43/Scaled Actual (mm)",
"Y1 Leaf 44/Scaled Actual (mm)",
"Y1 Leaf 45/Scaled Actual (mm)",
"Y1 Leaf 46/Scaled Actual (mm)",
"Y1 Leaf 47/Scaled Actual (mm)",
"Y1 Leaf 48/Scaled Actual (mm)",
"Y1 Leaf 49/Scaled Actual (mm)",
"Y1 Leaf 50/Scaled Actual (mm)",
"Y1 Leaf 51/Scaled Actual (mm)",
"Y1 Leaf 52/Scaled Actual (mm)",
"Y1 Leaf 53/Scaled Actual (mm)",
"Y1 Leaf 54/Scaled Actual (mm)",
"Y1 Leaf 55/Scaled Actual (mm)",
"Y1 Leaf 56/Scaled Actual (mm)",
"Y1 Leaf 57/Scaled Actual (mm)",
"Y1 Leaf 58/Scaled Actual (mm)",
"Y1 Leaf 59/Scaled Actual (mm)",
"Y1 Leaf 60/Scaled Actual (mm)",
"Y1 Leaf 61/Scaled Actual (mm)",
"Y1 Leaf 62/Scaled Actual (mm)",
"Y1 Leaf 63/Scaled Actual (mm)",
"Y1 Leaf 64/Scaled Actual (mm)",
"Y1 Leaf 65/Scaled Actual (mm)",
"Y1 Leaf 66/Scaled Actual (mm)",
"Y1 Leaf 67/Scaled Actual (mm)",
"Y1 Leaf 68/Scaled Actual (mm)",
"Y1 Leaf 69/Scaled Actual (mm)",
"Y1 Leaf 70/Scaled Actual (mm)",
"Y1 Leaf 71/Scaled Actual (mm)",
"Y1 Leaf 72/Scaled Actual (mm)",
"Y1 Leaf 73/Scaled Actual (mm)",
"Y1 Leaf 74/Scaled Actual (mm)",
"Y1 Leaf 75/Scaled Actual (mm)",
"Y1 Leaf 76/Scaled Actual (mm)",
"Y1 Leaf 77/Scaled Actual (mm)",
"Y1 Leaf 78/Scaled Actual (mm)",
"Y1 Leaf 79/Scaled Actual (mm)",
"Y1 Leaf 80/Scaled Actual (mm)",
"Y2 Leaf 1/Positional Error (mm)",
"Y2 Leaf 2/Positional Error (mm)",
"Y2 Leaf 3/Positional Error (mm)",
"Y2 Leaf 4/Positional Error (mm)",
"Y2 Leaf 5/Positional Error (mm)",
"Y2 Leaf 6/Positional Error (mm)",
"Y2 Leaf 7/Positional Error (mm)",
"Y2 Leaf 8/Positional Error (mm)",
"Y2 Leaf 9/Positional Error (mm)",
"Y2 Leaf 10/Positional Error (mm)",
"Y2 Leaf 11/Positional Error (mm)",
"Y2 Leaf 12/Positional Error (mm)",
"Y2 Leaf 13/Positional Error (mm)",
"Y2 Leaf 14/Positional Error (mm)",
"Y2 Leaf 15/Positional Error (mm)",
"Y2 Leaf 16/Positional Error (mm)",
"Y2 Leaf 17/Positional Error (mm)",
"Y2 Leaf 18/Positional Error (mm)",
"Y2 Leaf 19/Positional Error (mm)",
"Y2 Leaf 20/Positional Error (mm)",
"Y2 Leaf 21/Positional Error (mm)",
"Y2 Leaf 22/Positional Error (mm)",
"Y2 Leaf 23/Positional Error (mm)",
"Y2 Leaf 24/Positional Error (mm)",
"Y2 Leaf 25/Positional Error (mm)",
"Y2 Leaf 26/Positional Error (mm)",
"Y2 Leaf 27/Positional Error (mm)",
"Y2 Leaf 28/Positional Error (mm)",
"Y2 Leaf 29/Positional Error (mm)",
"Y2 Leaf 30/Positional Error (mm)",
"Y2 Leaf 31/Positional Error (mm)",
"Y2 Leaf 32/Positional Error (mm)",
"Y2 Leaf 33/Positional Error (mm)",
"Y2 Leaf 34/Positional Error (mm)",
"Y2 Leaf 35/Positional Error (mm)",
"Y2 Leaf 36/Positional Error (mm)",
"Y2 Leaf 37/Positional Error (mm)",
"Y2 Leaf 38/Positional Error (mm)",
"Y2 Leaf 39/Positional Error (mm)",
"Y2 Leaf 40/Positional Error (mm)",
"Y2 Leaf 41/Positional Error (mm)",
"Y2 Leaf 42/Positional Error (mm)",
"Y2 Leaf 43/Positional Error (mm)",
"Y2 Leaf 44/Positional Error (mm)",
"Y2 Leaf 45/Positional Error (mm)",
"Y2 Leaf 46/Positional Error (mm)",
"Y2 Leaf 47/Positional Error (mm)",
"Y2 Leaf 48/Positional Error (mm)",
"Y2 Leaf 49/Positional Error (mm)",
"Y2 Leaf 50/Positional Error (mm)",
"Y2 Leaf 51/Positional Error (mm)",
"Y2 Leaf 52/Positional Error (mm)",
"Y2 Leaf 53/Positional Error (mm)",
"Y2 Leaf 54/Positional Error (mm)",
"Y2 Leaf 55/Positional Error (mm)",
"Y2 Leaf 56/Positional Error (mm)",
"Y2 Leaf 57/Positional Error (mm)",
"Y2 Leaf 58/Positional Error (mm)",
"Y2 Leaf 59/Positional Error (mm)",
"Y2 Leaf 60/Positional Error (mm)",
"Y2 Leaf 61/Positional Error (mm)",
"Y2 Leaf 62/Positional Error (mm)",
"Y2 Leaf 63/Positional Error (mm)",
"Y2 Leaf 64/Positional Error (mm)",
"Y2 Leaf 65/Positional Error (mm)",
"Y2 Leaf 66/Positional Error (mm)",
"Y2 Leaf 67/Positional Error (mm)",
"Y2 Leaf 68/Positional Error (mm)",
"Y2 Leaf 69/Positional Error (mm)",
"Y2 Leaf 70/Positional Error (mm)",
"Y2 Leaf 71/Positional Error (mm)",
"Y2 Leaf 72/Positional Error (mm)",
"Y2 Leaf 73/Positional Error (mm)",
"Y2 Leaf 74/Positional Error (mm)",
"Y2 Leaf 75/Positional Error (mm)",
"Y2 Leaf 76/Positional Error (mm)",
"Y2 Leaf 77/Positional Error (mm)",
"Y2 Leaf 78/Positional Error (mm)",
"Y2 Leaf 79/Positional Error (mm)",
"Y2 Leaf 80/Positional Error (mm)",
"Y1 Leaf 1/Positional Error (mm)",
"Y1 Leaf 2/Positional Error (mm)",
"Y1 Leaf 3/Positional Error (mm)",
"Y1 Leaf 4/Positional Error (mm)",
"Y1 Leaf 5/Positional Error (mm)",
"Y1 Leaf 6/Positional Error (mm)",
"Y1 Leaf 7/Positional Error (mm)",
"Y1 Leaf 8/Positional Error (mm)",
"Y1 Leaf 9/Positional Error (mm)",
"Y1 Leaf 10/Positional Error (mm)",
"Y1 Leaf 11/Positional Error (mm)",
"Y1 Leaf 12/Positional Error (mm)",
"Y1 Leaf 13/Positional Error (mm)",
"Y1 Leaf 14/Positional Error (mm)",
"Y1 Leaf 15/Positional Error (mm)",
"Y1 Leaf 16/Positional Error (mm)",
"Y1 Leaf 17/Positional Error (mm)",
"Y1 Leaf 18/Positional Error (mm)",
"Y1 Leaf 19/Positional Error (mm)",
"Y1 Leaf 20/Positional Error (mm)",
"Y1 Leaf 21/Positional Error (mm)",
"Y1 Leaf 22/Positional Error (mm)",
"Y1 Leaf 23/Positional Error (mm)",
"Y1 Leaf 24/Positional Error (mm)",
"Y1 Leaf 25/Positional Error (mm)",
"Y1 Leaf 26/Positional Error (mm)",
"Y1 Leaf 27/Positional Error (mm)",
"Y1 Leaf 28/Positional Error (mm)",
"Y1 Leaf 29/Positional Error (mm)",
"Y1 Leaf 30/Positional Error (mm)",
"Y1 Leaf 31/Positional Error (mm)",
"Y1 Leaf 32/Positional Error (mm)",
"Y1 Leaf 33/Positional Error (mm)",
"Y1 Leaf 34/Positional Error (mm)",
"Y1 Leaf 35/Positional Error (mm)",
"Y1 Leaf 36/Positional Error (mm)",
"Y1 Leaf 37/Positional Error (mm)",
"Y1 Leaf 38/Positional Error (mm)",
"Y1 Leaf 39/Positional Error (mm)",
"Y1 Leaf 40/Positional Error (mm)",
"Y1 Leaf 41/Positional Error (mm)",
"Y1 Leaf 42/Positional Error (mm)",
"Y1 Leaf 43/Positional Error (mm)",
"Y1 Leaf 44/Positional Error (mm)",
"Y1 Leaf 45/Positional Error (mm)",
"Y1 Leaf 46/Positional Error (mm)",
"Y1 Leaf 47/Positional Error (mm)",
"Y1 Leaf 48/Positional Error (mm)",
"Y1 Leaf 49/Positional Error (mm)",
"Y1 Leaf 50/Positional Error (mm)",
"Y1 Leaf 51/Positional Error (mm)",
"Y1 Leaf 52/Positional Error (mm)",
"Y1 Leaf 53/Positional Error (mm)",
"Y1 Leaf 54/Positional Error (mm)",
"Y1 Leaf 55/Positional Error (mm)",
"Y1 Leaf 56/Positional Error (mm)",
"Y1 Leaf 57/Positional Error (mm)",
"Y1 Leaf 58/Positional Error (mm)",
"Y1 Leaf 59/Positional Error (mm)",
"Y1 Leaf 60/Positional Error (mm)",
"Y1 Leaf 61/Positional Error (mm)",
"Y1 Leaf 62/Positional Error (mm)",
"Y1 Leaf 63/Positional Error (mm)",
"Y1 Leaf 64/Positional Error (mm)",
"Y1 Leaf 65/Positional Error (mm)",
"Y1 Leaf 66/Positional Error (mm)",
"Y1 Leaf 67/Positional Error (mm)",
"Y1 Leaf 68/Positional Error (mm)",
"Y1 Leaf 69/Positional Error (mm)",
"Y1 Leaf 70/Positional Error (mm)",
"Y1 Leaf 71/Positional Error (mm)",
"Y1 Leaf 72/Positional Error (mm)",
"Y1 Leaf 73/Positional Error (mm)",
"Y1 Leaf 74/Positional Error (mm)",
"Y1 Leaf 75/Positional Error (mm)",
"Y1 Leaf 76/Positional Error (mm)",
"Y1 Leaf 77/Positional Error (mm)",
"Y1 Leaf 78/Positional Error (mm)",
"Y1 Leaf 79/Positional Error (mm)",
"Y1 Leaf 80/Positional Error (mm)"
]
}
AI Assistant Claude
Prompt sent to Claude: link
Comment that called Claude:
Claude, here is the condig file the defines the output of the TRF file. Can you please update your python snippet to take into account the correct column names:
{
"time_increment": 0.04,
"linac_state_codes": {
"16": "Closed",
"34": "State Code Unknown",
"39": "Move Only",
"40": "Pause",
"41": "Intersegment",
"42": "Radiation On",
"43": "Interupted",
"44": "Interupted Ready",
"45": "Terminated Checking",
"46": "Terminated Ok",
"47": "Terminated Fault"
},
"wedge_codes": {
"0": "Moving",
"1": "In",
"2": "Out"
},
"version_row": {
"1":
{ "dtype": "int16",
"offset": 0,
"lg_scale": 1
},
"2":
{ "dtype": "int16",
"offset": 8,
"lg_scale": 1
},
"3":
{ "dtype": "int16",
"offset": 8,
"lg_scale": 1
},
"4":
{ "dtype": "int32",
"offset": 8,
"lg_scale": 2
}
},
"item_part_names": {
"2240_111": "Control point/Actual Value (None)",
"2177_100": "Energy Cal Block/Set (None)",
"2543_111": "Linac State/Actual Value (None)",
"2542_111": "Actual Dose Rate/Actual Value (Mu/min)",
"2238_111": "Step Dose/Actual Value (Mu)",
"2162_101": "Dose/Raw value (1/64th Mu)",
"2200_111": "PRF Pauses/Actual Value (None)",
"2541_111": "Wedge Position/Actual Value (None)",
"2224_129": "Step Gantry/Scaled Actual (deg)",
"2224_220": "Step Gantry/Positional Error (deg)",
"2225_129": "Step Collimator/Scaled Actual (deg)",
"2225_220": "Step Collimator/Positional Error (deg)",
"2226_129": "Table Isocentric/Scaled Actual (deg)",
"2226_220": "Table Isocentric/Positional Error (deg)",
"2227_129": "Table Longitudinal/Scaled Actual (deg)",
"2227_220": "Table Longitudinal/Positional Error (deg)",
"2228_129": "Table Lateral/Scaled Actual (deg)",
"2228_220": "Table Lateral/Positional Error (deg)",
"2229_129": "Table Height/Scaled Actual (deg)",
"2229_220": "Table Height/Positional Error (deg)",
"2060_129": "X1 Diaphragm/Scaled Actual (mm)",
"2061_129": "X2 Diaphragm/Scaled Actual (mm)",
"2060_220": "X1 Diaphragm/Positional Error (mm)",
"2061_220": "X2 Diaphragm/Positional Error (mm)",
"2064_129": "Dlg Y2/Scaled Actual (mm)",
"2065_129": "Dlg Y1/Scaled Actual (mm)",
"2064_220": "Dlg Y2/Positional Error (mm)",
"2065_220": "Dlg Y1/Positional Error (mm)",
"2420_227": "Y2 Leaf 40/Actual Tolerance (mm)",
"2500_227": "Y1 Leaf 40/Actual Tolerance (mm)",
"2380_129": "Y2 Leaf 1/Scaled Actual (mm)",
"2381_129": "Y2 Leaf 2/Scaled Actual (mm)",
"2382_129": "Y2 Leaf 3/Scaled Actual (mm)",
"2383_129": "Y2 Leaf 4/Scaled Actual (mm)",
"2384_129": "Y2 Leaf 5/Scaled Actual (mm)",
"2385_129": "Y2 Leaf 6/Scaled Actual (mm)",
"2386_129": "Y2 Leaf 7/Scaled Actual (mm)",
"2387_129": "Y2 Leaf 8/Scaled Actual (mm)",
"2388_129": "Y2 Leaf 9/Scaled Actual (mm)",
"2389_129": "Y2 Leaf 10/Scaled Actual (mm)",
"2390_129": "Y2 Leaf 11/Scaled Actual (mm)",
"2391_129": "Y2 Leaf 12/Scaled Actual (mm)",
"2392_129": "Y2 Leaf 13/Scaled Actual (mm)",
"2393_129": "Y2 Leaf 14/Scaled Actual (mm)",
"2394_129": "Y2 Leaf 15/Scaled Actual (mm)",
"2395_129": "Y2 Leaf 16/Scaled Actual (mm)",
"2396_129": "Y2 Leaf 17/Scaled Actual (mm)",
"2397_129": "Y2 Leaf 18/Scaled Actual (mm)",
"2398_129": "Y2 Leaf 19/Scaled Actual (mm)",
"2399_129": "Y2 Leaf 20/Scaled Actual (mm)",
"2400_129": "Y2 Leaf 21/Scaled Actual (mm)",
"2401_129": "Y2 Leaf 22/Scaled Actual (mm)",
"2402_129": "Y2 Leaf 23/Scaled Actual (mm)",
"2403_129": "Y2 Leaf 24/Scaled Actual (mm)",
"2404_129": "Y2 Leaf 25/Scaled Actual (mm)",
"2405_129": "Y2 Leaf 26/Scaled Actual (mm)",
"2406_129": "Y2 Leaf 27/Scaled Actual (mm)",
"2407_129": "Y2 Leaf 28/Scaled Actual (mm)",
"2408_129": "Y2 Leaf 29/Scaled Actual (mm)",
"2409_129": "Y2 Leaf 30/Scaled Actual (mm)",
"2410_129": "Y2 Leaf 31/Scaled Actual (mm)",
"2411_129": "Y2 Leaf 32/Scaled Actual (mm)",
"2412_129": "Y2 Leaf 33/Scaled Actual (mm)",
"2413_129": "Y2 Leaf 34/Scaled Actual (mm)",
"2414_129": "Y2 Leaf 35/Scaled Actual (mm)",
"2415_129": "Y2 Leaf 36/Scaled Actual (mm)",
"2416_129": "Y2 Leaf 37/Scaled Actual (mm)",
"2417_129": "Y2 Leaf 38/Scaled Actual (mm)",
"2418_129": "Y2 Leaf 39/Scaled Actual (mm)",
"2419_129": "Y2 Leaf 40/Scaled Actual (mm)",
"2420_129": "Y2 Leaf 41/Scaled Actual (mm)",
"2421_129": "Y2 Leaf 42/Scaled Actual (mm)",
"2422_129": "Y2 Leaf 43/Scaled Actual (mm)",
"2423_129": "Y2 Leaf 44/Scaled Actual (mm)",
"2424_129": "Y2 Leaf 45/Scaled Actual (mm)",
"2425_129": "Y2 Leaf 46/Scaled Actual (mm)",
"2426_129": "Y2 Leaf 47/Scaled Actual (mm)",
"2427_129": "Y2 Leaf 48/Scaled Actual (mm)",
"2428_129": "Y2 Leaf 49/Scaled Actual (mm)",
"2429_129": "Y2 Leaf 50/Scaled Actual (mm)",
"2430_129": "Y2 Leaf 51/Scaled Actual (mm)",
"2431_129": "Y2 Leaf 52/Scaled Actual (mm)",
"2432_129": "Y2 Leaf 53/Scaled Actual (mm)",
"2433_129": "Y2 Leaf 54/Scaled Actual (mm)",
"2434_129": "Y2 Leaf 55/Scaled Actual (mm)",
"2435_129": "Y2 Leaf 56/Scaled Actual (mm)",
"2436_129": "Y2 Leaf 57/Scaled Actual (mm)",
"2437_129": "Y2 Leaf 58/Scaled Actual (mm)",
"2438_129": "Y2 Leaf 59/Scaled Actual (mm)",
"2439_129": "Y2 Leaf 60/Scaled Actual (mm)",
"2440_129": "Y2 Leaf 61/Scaled Actual (mm)",
"2441_129": "Y2 Leaf 62/Scaled Actual (mm)",
"2442_129": "Y2 Leaf 63/Scaled Actual (mm)",
"2443_129": "Y2 Leaf 64/Scaled Actual (mm)",
"2444_129": "Y2 Leaf 65/Scaled Actual (mm)",
"2445_129": "Y2 Leaf 66/Scaled Actual (mm)",
"2446_129": "Y2 Leaf 67/Scaled Actual (mm)",
"2447_129": "Y2 Leaf 68/Scaled Actual (mm)",
"2448_129": "Y2 Leaf 69/Scaled Actual (mm)",
"2449_129": "Y2 Leaf 70/Scaled Actual (mm)",
"2450_129": "Y2 Leaf 71/Scaled Actual (mm)",
"2451_129": "Y2 Leaf 72/Scaled Actual (mm)",
"2452_129": "Y2 Leaf 73/Scaled Actual (mm)",
"2453_129": "Y2 Leaf 74/Scaled Actual (mm)",
"2454_129": "Y2 Leaf 75/Scaled Actual (mm)",
"2455_129": "Y2 Leaf 76/Scaled Actual (mm)",
"2456_129": "Y2 Leaf 77/Scaled Actual (mm)",
"2457_129": "Y2 Leaf 78/Scaled Actual (mm)",
"2458_129": "Y2 Leaf 79/Scaled Actual (mm)",
"2459_129": "Y2 Leaf 80/Scaled Actual (mm)",
"2460_129": "Y1 Leaf 1/Scaled Actual (mm)",
"2461_129": "Y1 Leaf 2/Scaled Actual (mm)",
"2462_129": "Y1 Leaf 3/Scaled Actual (mm)",
"2463_129": "Y1 Leaf 4/Scaled Actual (mm)",
"2464_129": "Y1 Leaf 5/Scaled Actual (mm)",
"2465_129": "Y1 Leaf 6/Scaled Actual (mm)",
"2466_129": "Y1 Leaf 7/Scaled Actual (mm)",
"2467_129": "Y1 Leaf 8/Scaled Actual (mm)",
"2468_129": "Y1 Leaf 9/Scaled Actual (mm)",
"2469_129": "Y1 Leaf 10/Scaled Actual (mm)",
"2470_129": "Y1 Leaf 11/Scaled Actual (mm)",
"2471_129": "Y1 Leaf 12/Scaled Actual (mm)",
"2472_129": "Y1 Leaf 13/Scaled Actual (mm)",
"2473_129": "Y1 Leaf 14/Scaled Actual (mm)",
"2474_129": "Y1 Leaf 15/Scaled Actual (mm)",
"2475_129": "Y1 Leaf 16/Scaled Actual (mm)",
"2476_129": "Y1 Leaf 17/Scaled Actual (mm)",
"2477_129": "Y1 Leaf 18/Scaled Actual (mm)",
"2478_129": "Y1 Leaf 19/Scaled Actual (mm)",
"2479_129": "Y1 Leaf 20/Scaled Actual (mm)",
"2480_129": "Y1 Leaf 21/Scaled Actual (mm)",
"2481_129": "Y1 Leaf 22/Scaled Actual (mm)",
"2482_129": "Y1 Leaf 23/Scaled Actual (mm)",
"2483_129": "Y1 Leaf 24/Scaled Actual (mm)",
"2484_129": "Y1 Leaf 25/Scaled Actual (mm)",
"2485_129": "Y1 Leaf 26/Scaled Actual (mm)",
"2486_129": "Y1 Leaf 27/Scaled Actual (mm)",
"2487_129": "Y1 Leaf 28/Scaled Actual (mm)",
"2488_129": "Y1 Leaf 29/Scaled Actual (mm)",
"2489_129": "Y1 Leaf 30/Scaled Actual (mm)",
"2490_129": "Y1 Leaf 31/Scaled Actual (mm)",
"2491_129": "Y1 Leaf 32/Scaled Actual (mm)",
"2492_129": "Y1 Leaf 33/Scaled Actual (mm)",
"2493_129": "Y1 Leaf 34/Scaled Actual (mm)",
"2494_129": "Y1 Leaf 35/Scaled Actual (mm)",
"2495_129": "Y1 Leaf 36/Scaled Actual (mm)",
"2496_129": "Y1 Leaf 37/Scaled Actual (mm)",
"2497_129": "Y1 Leaf 38/Scaled Actual (mm)",
"2498_129": "Y1 Leaf 39/Scaled Actual (mm)",
"2499_129": "Y1 Leaf 40/Scaled Actual (mm)",
"2500_129": "Y1 Leaf 41/Scaled Actual (mm)",
"2501_129": "Y1 Leaf 42/Scaled Actual (mm)",
"2502_129": "Y1 Leaf 43/Scaled Actual (mm)",
"2503_129": "Y1 Leaf 44/Scaled Actual (mm)",
"2504_129": "Y1 Leaf 45/Scaled Actual (mm)",
"2505_129": "Y1 Leaf 46/Scaled Actual (mm)",
"2506_129": "Y1 Leaf 47/Scaled Actual (mm)",
"2507_129": "Y1 Leaf 48/Scaled Actual (mm)",
"2508_129": "Y1 Leaf 49/Scaled Actual (mm)",
"2509_129": "Y1 Leaf 50/Scaled Actual (mm)",
"2510_129": "Y1 Leaf 51/Scaled Actual (mm)",
"2511_129": "Y1 Leaf 52/Scaled Actual (mm)",
"2512_129": "Y1 Leaf 53/Scaled Actual (mm)",
"2513_129": "Y1 Leaf 54/Scaled Actual (mm)",
"2514_129": "Y1 Leaf 55/Scaled Actual (mm)",
"2515_129": "Y1 Leaf 56/Scaled Actual (mm)",
"2516_129": "Y1 Leaf 57/Scaled Actual (mm)",
"2517_129": "Y1 Leaf 58/Scaled Actual (mm)",
"2518_129": "Y1 Leaf 59/Scaled Actual (mm)",
"2519_129": "Y1 Leaf 60/Scaled Actual (mm)",
"2520_129": "Y1 Leaf 61/Scaled Actual (mm)",
"2521_129": "Y1 Leaf 62/Scaled Actual (mm)",
"2522_129": "Y1 Leaf 63/Scaled Actual (mm)",
"2523_129": "Y1 Leaf 64/Scaled Actual (mm)",
"2524_129": "Y1 Leaf 65/Scaled Actual (mm)",
"2525_129": "Y1 Leaf 66/Scaled Actual (mm)",
"2526_129": "Y1 Leaf 67/Scaled Actual (mm)",
"2527_129": "Y1 Leaf 68/Scaled Actual (mm)",
"2528_129": "Y1 Leaf 69/Scaled Actual (mm)",
"2529_129": "Y1 Leaf 70/Scaled Actual (mm)",
"2530_129": "Y1 Leaf 71/Scaled Actual (mm)",
"2531_129": "Y1 Leaf 72/Scaled Actual (mm)",
"2532_129": "Y1 Leaf 73/Scaled Actual (mm)",
"2533_129": "Y1 Leaf 74/Scaled Actual (mm)",
"2534_129": "Y1 Leaf 75/Scaled Actual (mm)",
"2535_129": "Y1 Leaf 76/Scaled Actual (mm)",
"2536_129": "Y1 Leaf 77/Scaled Actual (mm)",
"2537_129": "Y1 Leaf 78/Scaled Actual (mm)",
"2538_129": "Y1 Leaf 79/Scaled Actual (mm)",
"2539_129": "Y1 Leaf 80/Scaled Actual (mm)",
"2380_220": "Y2 Leaf 1/Positional Error (mm)",
"2381_220": "Y2 Leaf 2/Positional Error (mm)",
"2382_220": "Y2 Leaf 3/Positional Error (mm)",
"2383_220": "Y2 Leaf 4/Positional Error (mm)",
"2384_220": "Y2 Leaf 5/Positional Error (mm)",
"2385_220": "Y2 Leaf 6/Positional Error (mm)",
"2386_220": "Y2 Leaf 7/Positional Error (mm)",
"2387_220": "Y2 Leaf 8/Positional Error (mm)",
"2388_220": "Y2 Leaf 9/Positional Error (mm)",
"2389_220": "Y2 Leaf 10/Positional Error (mm)",
"2390_220": "Y2 Leaf 11/Positional Error (mm)",
"2391_220": "Y2 Leaf 12/Positional Error (mm)",
"2392_220": "Y2 Leaf 13/Positional Error (mm)",
"2393_220": "Y2 Leaf 14/Positional Error (mm)",
"2394_220": "Y2 Leaf 15/Positional Error (mm)",
"2395_220": "Y2 Leaf 16/Positional Error (mm)",
"2396_220": "Y2 Leaf 17/Positional Error (mm)",
"2397_220": "Y2 Leaf 18/Positional Error (mm)",
"2398_220": "Y2 Leaf 19/Positional Error (mm)",
"2399_220": "Y2 Leaf 20/Positional Error (mm)",
"2400_220": "Y2 Leaf 21/Positional Error (mm)",
"2401_220": "Y2 Leaf 22/Positional Error (mm)",
"2402_220": "Y2 Leaf 23/Positional Error (mm)",
"2403_220": "Y2 Leaf 24/Positional Error (mm)",
"2404_220": "Y2 Leaf 25/Positional Error (mm)",
"2405_220": "Y2 Leaf 26/Positional Error (mm)",
"2406_220": "Y2 Leaf 27/Positional Error (mm)",
"2407_220": "Y2 Leaf 28/Positional Error (mm)",
"2408_220": "Y2 Leaf 29/Positional Error (mm)",
"2409_220": "Y2 Leaf 30/Positional Error (mm)",
"2410_220": "Y2 Leaf 31/Positional Error (mm)",
"2411_220": "Y2 Leaf 32/Positional Error (mm)",
"2412_220": "Y2 Leaf 33/Positional Error (mm)",
"2413_220": "Y2 Leaf 34/Positional Error (mm)",
"2414_220": "Y2 Leaf 35/Positional Error (mm)",
"2415_220": "Y2 Leaf 36/Positional Error (mm)",
"2416_220": "Y2 Leaf 37/Positional Error (mm)",
"2417_220": "Y2 Leaf 38/Positional Error (mm)",
"2418_220": "Y2 Leaf 39/Positional Error (mm)",
"2419_220": "Y2 Leaf 40/Positional Error (mm)",
"2420_220": "Y2 Leaf 41/Positional Error (mm)",
"2421_220": "Y2 Leaf 42/Positional Error (mm)",
"2422_220": "Y2 Leaf 43/Positional Error (mm)",
"2423_220": "Y2 Leaf 44/Positional Error (mm)",
"2424_220": "Y2 Leaf 45/Positional Error (mm)",
"2425_220": "Y2 Leaf 46/Positional Error (mm)",
"2426_220": "Y2 Leaf 47/Positional Error (mm)",
"2427_220": "Y2 Leaf 48/Positional Error (mm)",
"2428_220": "Y2 Leaf 49/Positional Error (mm)",
"2429_220": "Y2 Leaf 50/Positional Error (mm)",
"2430_220": "Y2 Leaf 51/Positional Error (mm)",
"2431_220": "Y2 Leaf 52/Positional Error (mm)",
"2432_220": "Y2 Leaf 53/Positional Error (mm)",
"2433_220": "Y2 Leaf 54/Positional Error (mm)",
"2434_220": "Y2 Leaf 55/Positional Error (mm)",
"2435_220": "Y2 Leaf 56/Positional Error (mm)",
"2436_220": "Y2 Leaf 57/Positional Error (mm)",
"2437_220": "Y2 Leaf 58/Positional Error (mm)",
"2438_220": "Y2 Leaf 59/Positional Error (mm)",
"2439_220": "Y2 Leaf 60/Positional Error (mm)",
"2440_220": "Y2 Leaf 61/Positional Error (mm)",
"2441_220": "Y2 Leaf 62/Positional Error (mm)",
"2442_220": "Y2 Leaf 63/Positional Error (mm)",
"2443_220": "Y2 Leaf 64/Positional Error (mm)",
"2444_220": "Y2 Leaf 65/Positional Error (mm)",
"2445_220": "Y2 Leaf 66/Positional Error (mm)",
"2446_220": "Y2 Leaf 67/Positional Error (mm)",
"2447_220": "Y2 Leaf 68/Positional Error (mm)",
"2448_220": "Y2 Leaf 69/Positional Error (mm)",
"2449_220": "Y2 Leaf 70/Positional Error (mm)",
"2450_220": "Y2 Leaf 71/Positional Error (mm)",
"2451_220": "Y2 Leaf 72/Positional Error (mm)",
"2452_220": "Y2 Leaf 73/Positional Error (mm)",
"2453_220": "Y2 Leaf 74/Positional Error (mm)",
"2454_220": "Y2 Leaf 75/Positional Error (mm)",
"2455_220": "Y2 Leaf 76/Positional Error (mm)",
"2456_220": "Y2 Leaf 77/Positional Error (mm)",
"2457_220": "Y2 Leaf 78/Positional Error (mm)",
"2458_220": "Y2 Leaf 79/Positional Error (mm)",
"2459_220": "Y2 Leaf 80/Positional Error (mm)",
"2460_220": "Y1 Leaf 1/Positional Error (mm)",
"2461_220": "Y1 Leaf 2/Positional Error (mm)",
"2462_220": "Y1 Leaf 3/Positional Error (mm)",
"2463_220": "Y1 Leaf 4/Positional Error (mm)",
"2464_220": "Y1 Leaf 5/Positional Error (mm)",
"2465_220": "Y1 Leaf 6/Positional Error (mm)",
"2466_220": "Y1 Leaf 7/Positional Error (mm)",
"2467_220": "Y1 Leaf 8/Positional Error (mm)",
"2468_220": "Y1 Leaf 9/Positional Error (mm)",
"2469_220": "Y1 Leaf 10/Positional Error (mm)",
"2470_220": "Y1 Leaf 11/Positional Error (mm)",
"2471_220": "Y1 Leaf 12/Positional Error (mm)",
"2472_220": "Y1 Leaf 13/Positional Error (mm)",
"2473_220": "Y1 Leaf 14/Positional Error (mm)",
"2474_220": "Y1 Leaf 15/Positional Error (mm)",
"2475_220": "Y1 Leaf 16/Positional Error (mm)",
"2476_220": "Y1 Leaf 17/Positional Error (mm)",
"2477_220": "Y1 Leaf 18/Positional Error (mm)",
"2478_220": "Y1 Leaf 19/Positional Error (mm)",
"2479_220": "Y1 Leaf 20/Positional Error (mm)",
"2480_220": "Y1 Leaf 21/Positional Error (mm)",
"2481_220": "Y1 Leaf 22/Positional Error (mm)",
"2482_220": "Y1 Leaf 23/Positional Error (mm)",
"2483_220": "Y1 Leaf 24/Positional Error (mm)",
"2484_220": "Y1 Leaf 25/Positional Error (mm)",
"2485_220": "Y1 Leaf 26/Positional Error (mm)",
"2486_220": "Y1 Leaf 27/Positional Error (mm)",
"2487_220": "Y1 Leaf 28/Positional Error (mm)",
"2488_220": "Y1 Leaf 29/Positional Error (mm)",
"2489_220": "Y1 Leaf 30/Positional Error (mm)",
"2490_220": "Y1 Leaf 31/Positional Error (mm)",
"2491_220": "Y1 Leaf 32/Positional Error (mm)",
"2492_220": "Y1 Leaf 33/Positional Error (mm)",
"2493_220": "Y1 Leaf 34/Positional Error (mm)",
"2494_220": "Y1 Leaf 35/Positional Error (mm)",
"2495_220": "Y1 Leaf 36/Positional Error (mm)",
"2496_220": "Y1 Leaf 37/Positional Error (mm)",
"2497_220": "Y1 Leaf 38/Positional Error (mm)",
"2498_220": "Y1 Leaf 39/Positional Error (mm)",
"2499_220": "Y1 Leaf 40/Positional Error (mm)",
"2500_220": "Y1 Leaf 41/Positional Error (mm)",
"2501_220": "Y1 Leaf 42/Positional Error (mm)",
"2502_220": "Y1 Leaf 43/Positional Error (mm)",
"2503_220": "Y1 Leaf 44/Positional Error (mm)",
"2504_220": "Y1 Leaf 45/Positional Error (mm)",
"2505_220": "Y1 Leaf 46/Positional Error (mm)",
"2506_220": "Y1 Leaf 47/Positional Error (mm)",
"2507_220": "Y1 Leaf 48/Positional Error (mm)",
"2508_220": "Y1 Leaf 49/Positional Error (mm)",
"2509_220": "Y1 Leaf 50/Positional Error (mm)",
"2510_220": "Y1 Leaf 51/Positional Error (mm)",
"2511_220": "Y1 Leaf 52/Positional Error (mm)",
"2512_220": "Y1 Leaf 53/Positional Error (mm)",
"2513_220": "Y1 Leaf 54/Positional Error (mm)",
"2514_220": "Y1 Leaf 55/Positional Error (mm)",
"2515_220": "Y1 Leaf 56/Positional Error (mm)",
"2516_220": "Y1 Leaf 57/Positional Error (mm)",
"2517_220": "Y1 Leaf 58/Positional Error (mm)",
"2518_220": "Y1 Leaf 59/Positional Error (mm)",
"2519_220": "Y1 Leaf 60/Positional Error (mm)",
"2520_220": "Y1 Leaf 61/Positional Error (mm)",
"2521_220": "Y1 Leaf 62/Positional Error (mm)",
"2522_220": "Y1 Leaf 63/Positional Error (mm)",
"2523_220": "Y1 Leaf 64/Positional Error (mm)",
"2524_220": "Y1 Leaf 65/Positional Error (mm)",
"2525_220": "Y1 Leaf 66/Positional Error (mm)",
"2526_220": "Y1 Leaf 67/Positional Error (mm)",
"2527_220": "Y1 Leaf 68/Positional Error (mm)",
"2528_220": "Y1 Leaf 69/Positional Error (mm)",
"2529_220": "Y1 Leaf 70/Positional Error (mm)",
"2530_220": "Y1 Leaf 71/Positional Error (mm)",
"2531_220": "Y1 Leaf 72/Positional Error (mm)",
"2532_220": "Y1 Leaf 73/Positional Error (mm)",
"2533_220": "Y1 Leaf 74/Positional Error (mm)",
"2534_220": "Y1 Leaf 75/Positional Error (mm)",
"2535_220": "Y1 Leaf 76/Positional Error (mm)",
"2536_220": "Y1 Leaf 77/Positional Error (mm)",
"2537_220": "Y1 Leaf 78/Positional Error (mm)",
"2538_220": "Y1 Leaf 79/Positional Error (mm)",
"2539_220": "Y1 Leaf 80/Positional Error (mm)",
"2170_111": "Mlc Status/Actual Value (None)"
},
"column_names": [
"Control point/Actual Value (None)",
"Energy Cal Block/Set (None)",
"Linac State/Actual Value (None)",
"Actual Dose Rate/Actual Value (Mu/min)",
"Step Dose/Actual Value (Mu)",
"Dose/Raw value (1/64th Mu)",
"PRF Pauses/Actual Value (None)",
"Wedge Position/Actual Value (None)",
"Step Gantry/Scaled Actual (deg)",
"Step Gantry/Positional Error (deg)",
"Step Collimator/Scaled Actual (deg)",
"Step Collimator/Positional Error (deg)",
"Table Isocentric/Scaled Actual (deg)",
"Table Isocentric/Positional Error (deg)",
"Table Longitudinal/Scaled Actual (deg)",
"Table Longitudinal/Positional Error (deg)",
"Table Lateral/Scaled Actual (deg)",
"Table Lateral/Positional Error (deg)",
"Table Height/Scaled Actual (deg)",
"Table Height/Positional Error (deg)",
"X1 Diaphragm/Scaled Actual (mm)",
"X2 Diaphragm/Scaled Actual (mm)",
"X1 Diaphragm/Positional Error (mm)",
"X2 Diaphragm/Positional Error (mm)",
"Dlg Y2/Scaled Actual (mm)",
"Dlg Y1/Scaled Actual (mm)",
"Dlg Y2/Positional Error (mm)",
"Dlg Y1/Positional Error (mm)",
"Y2 Leaf 40/Actual Tolerance (mm)",
"Y1 Leaf 40/Actual Tolerance (mm)",
"Y2 Leaf 1/Scaled Actual (mm)",
"Y2 Leaf 2/Scaled Actual (mm)",
"Y2 Leaf 3/Scaled Actual (mm)",
"Y2 Leaf 4/Scaled Actual (mm)",
"Y2 Leaf 5/Scaled Actual (mm)",
"Y2 Leaf 6/Scaled Actual (mm)",
"Y2 Leaf 7/Scaled Actual (mm)",
"Y2 Leaf 8/Scaled Actual (mm)",
"Y2 Leaf 9/Scaled Actual (mm)",
"Y2 Leaf 10/Scaled Actual (mm)",
"Y2 Leaf 11/Scaled Actual (mm)",
"Y2 Leaf 12/Scaled Actual (mm)",
"Y2 Leaf 13/Scaled Actual (mm)",
"Y2 Leaf 14/Scaled Actual (mm)",
"Y2 Leaf 15/Scaled Actual (mm)",
"Y2 Leaf 16/Scaled Actual (mm)",
"Y2 Leaf 17/Scaled Actual (mm)",
"Y2 Leaf 18/Scaled Actual (mm)",
"Y2 Leaf 19/Scaled Actual (mm)",
"Y2 Leaf 20/Scaled Actual (mm)",
"Y2 Leaf 21/Scaled Actual (mm)",
"Y2 Leaf 22/Scaled Actual (mm)",
"Y2 Leaf 23/Scaled Actual (mm)",
"Y2 Leaf 24/Scaled Actual (mm)",
"Y2 Leaf 25/Scaled Actual (mm)",
"Y2 Leaf 26/Scaled Actual (mm)",
"Y2 Leaf 27/Scaled Actual (mm)",
"Y2 Leaf 28/Scaled Actual (mm)",
"Y2 Leaf 29/Scaled Actual (mm)",
"Y2 Leaf 30/Scaled Actual (mm)",
"Y2 Leaf 31/Scaled Actual (mm)",
"Y2 Leaf 32/Scaled Actual (mm)",
"Y2 Leaf 33/Scaled Actual (mm)",
"Y2 Leaf 34/Scaled Actual (mm)",
"Y2 Leaf 35/Scaled Actual (mm)",
"Y2 Leaf 36/Scaled Actual (mm)",
"Y2 Leaf 37/Scaled Actual (mm)",
"Y2 Leaf 38/Scaled Actual (mm)",
"Y2 Leaf 39/Scaled Actual (mm)",
"Y2 Leaf 40/Scaled Actual (mm)",
"Y2 Leaf 41/Scaled Actual (mm)",
"Y2 Leaf 42/Scaled Actual (mm)",
"Y2 Leaf 43/Scaled Actual (mm)",
"Y2 Leaf 44/Scaled Actual (mm)",
"Y2 Leaf 45/Scaled Actual (mm)",
"Y2 Leaf 46/Scaled Actual (mm)",
"Y2 Leaf 47/Scaled Actual (mm)",
"Y2 Leaf 48/Scaled Actual (mm)",
"Y2 Leaf 49/Scaled Actual (mm)",
"Y2 Leaf 50/Scaled Actual (mm)",
"Y2 Leaf 51/Scaled Actual (mm)",
"Y2 Leaf 52/Scaled Actual (mm)",
"Y2 Leaf 53/Scaled Actual (mm)",
"Y2 Leaf 54/Scaled Actual (mm)",
"Y2 Leaf 55/Scaled Actual (mm)",
"Y2 Leaf 56/Scaled Actual (mm)",
"Y2 Leaf 57/Scaled Actual (mm)",
"Y2 Leaf 58/Scaled Actual (mm)",
"Y2 Leaf 59/Scaled Actual (mm)",
"Y2 Leaf 60/Scaled Actual (mm)",
"Y2 Leaf 61/Scaled Actual (mm)",
"Y2 Leaf 62/Scaled Actual (mm)",
"Y2 Leaf 63/Scaled Actual (mm)",
"Y2 Leaf 64/Scaled Actual (mm)",
"Y2 Leaf 65/Scaled Actual (mm)",
"Y2 Leaf 66/Scaled Actual (mm)",
"Y2 Leaf 67/Scaled Actual (mm)",
"Y2 Leaf 68/Scaled Actual (mm)",
"Y2 Leaf 69/Scaled Actual (mm)",
"Y2 Leaf 70/Scaled Actual (mm)",
"Y2 Leaf 71/Scaled Actual (mm)",
"Y2 Leaf 72/Scaled Actual (mm)",
"Y2 Leaf 73/Scaled Actual (mm)",
"Y2 Leaf 74/Scaled Actual (mm)",
"Y2 Leaf 75/Scaled Actual (mm)",
"Y2 Leaf 76/Scaled Actual (mm)",
"Y2 Leaf 77/Scaled Actual (mm)",
"Y2 Leaf 78/Scaled Actual (mm)",
"Y2 Leaf 79/Scaled Actual (mm)",
"Y2 Leaf 80/Scaled Actual (mm)",
"Y1 Leaf 1/Scaled Actual (mm)",
"Y1 Leaf 2/Scaled Actual (mm)",
"Y1 Leaf 3/Scaled Actual (mm)",
"Y1 Leaf 4/Scaled Actual (mm)",
"Y1 Leaf 5/Scaled Actual (mm)",
"Y1 Leaf 6/Scaled Actual (mm)",
"Y1 Leaf 7/Scaled Actual (mm)",
"Y1 Leaf 8/Scaled Actual (mm)",
"Y1 Leaf 9/Scaled Actual (mm)",
"Y1 Leaf 10/Scaled Actual (mm)",
"Y1 Leaf 11/Scaled Actual (mm)",
"Y1 Leaf 12/Scaled Actual (mm)",
"Y1 Leaf 13/Scaled Actual (mm)",
"Y1 Leaf 14/Scaled Actual (mm)",
"Y1 Leaf 15/Scaled Actual (mm)",
"Y1 Leaf 16/Scaled Actual (mm)",
"Y1 Leaf 17/Scaled Actual (mm)",
"Y1 Leaf 18/Scaled Actual (mm)",
"Y1 Leaf 19/Scaled Actual (mm)",
"Y1 Leaf 20/Scaled Actual (mm)",
"Y1 Leaf 21/Scaled Actual (mm)",
"Y1 Leaf 22/Scaled Actual (mm)",
"Y1 Leaf 23/Scaled Actual (mm)",
"Y1 Leaf 24/Scaled Actual (mm)",
"Y1 Leaf 25/Scaled Actual (mm)",
"Y1 Leaf 26/Scaled Actual (mm)",
"Y1 Leaf 27/Scaled Actual (mm)",
"Y1 Leaf 28/Scaled Actual (mm)",
"Y1 Leaf 29/Scaled Actual (mm)",
"Y1 Leaf 30/Scaled Actual (mm)",
"Y1 Leaf 31/Scaled Actual (mm)",
"Y1 Leaf 32/Scaled Actual (mm)",
"Y1 Leaf 33/Scaled Actual (mm)",
"Y1 Leaf 34/Scaled Actual (mm)",
"Y1 Leaf 35/Scaled Actual (mm)",
"Y1 Leaf 36/Scaled Actual (mm)",
"Y1 Leaf 37/Scaled Actual (mm)",
"Y1 Leaf 38/Scaled Actual (mm)",
"Y1 Leaf 39/Scaled Actual (mm)",
"Y1 Leaf 40/Scaled Actual (mm)",
"Y1 Leaf 41/Scaled Actual (mm)",
"Y1 Leaf 42/Scaled Actual (mm)",
"Y1 Leaf 43/Scaled Actual (mm)",
"Y1 Leaf 44/Scaled Actual (mm)",
"Y1 Leaf 45/Scaled Actual (mm)",
"Y1 Leaf 46/Scaled Actual (mm)",
"Y1 Leaf 47/Scaled Actual (mm)",
"Y1 Leaf 48/Scaled Actual (mm)",
"Y1 Leaf 49/Scaled Actual (mm)",
"Y1 Leaf 50/Scaled Actual (mm)",
"Y1 Leaf 51/Scaled Actual (mm)",
"Y1 Leaf 52/Scaled Actual (mm)",
"Y1 Leaf 53/Scaled Actual (mm)",
"Y1 Leaf 54/Scaled Actual (mm)",
"Y1 Leaf 55/Scaled Actual (mm)",
"Y1 Leaf 56/Scaled Actual (mm)",
"Y1 Leaf 57/Scaled Actual (mm)",
"Y1 Leaf 58/Scaled Actual (mm)",
"Y1 Leaf 59/Scaled Actual (mm)",
"Y1 Leaf 60/Scaled Actual (mm)",
"Y1 Leaf 61/Scaled Actual (mm)",
"Y1 Leaf 62/Scaled Actual (mm)",
"Y1 Leaf 63/Scaled Actual (mm)",
"Y1 Leaf 64/Scaled Actual (mm)",
"Y1 Leaf 65/Scaled Actual (mm)",
"Y1 Leaf 66/Scaled Actual (mm)",
"Y1 Leaf 67/Scaled Actual (mm)",
"Y1 Leaf 68/Scaled Actual (mm)",
"Y1 Leaf 69/Scaled Actual (mm)",
"Y1 Leaf 70/Scaled Actual (mm)",
"Y1 Leaf 71/Scaled Actual (mm)",
"Y1 Leaf 72/Scaled Actual (mm)",
"Y1 Leaf 73/Scaled Actual (mm)",
"Y1 Leaf 74/Scaled Actual (mm)",
"Y1 Leaf 75/Scaled Actual (mm)",
"Y1 Leaf 76/Scaled Actual (mm)",
"Y1 Leaf 77/Scaled Actual (mm)",
"Y1 Leaf 78/Scaled Actual (mm)",
"Y1 Leaf 79/Scaled Actual (mm)",
"Y1 Leaf 80/Scaled Actual (mm)",
"Y2 Leaf 1/Positional Error (mm)",
"Y2 Leaf 2/Positional Error (mm)",
"Y2 Leaf 3/Positional Error (mm)",
"Y2 Leaf 4/Positional Error (mm)",
"Y2 Leaf 5/Positional Error (mm)",
"Y2 Leaf 6/Positional Error (mm)",
"Y2 Leaf 7/Positional Error (mm)",
"Y2 Leaf 8/Positional Error (mm)",
"Y2 Leaf 9/Positional Error (mm)",
"Y2 Leaf 10/Positional Error (mm)",
"Y2 Leaf 11/Positional Error (mm)",
"Y2 Leaf 12/Positional Error (mm)",
"Y2 Leaf 13/Positional Error (mm)",
"Y2 Leaf 14/Positional Error (mm)",
"Y2 Leaf 15/Positional Error (mm)",
"Y2 Leaf 16/Positional Error (mm)",
"Y2 Leaf 17/Positional Error (mm)",
"Y2 Leaf 18/Positional Error (mm)",
"Y2 Leaf 19/Positional Error (mm)",
"Y2 Leaf 20/Positional Error (mm)",
"Y2 Leaf 21/Positional Error (mm)",
"Y2 Leaf 22/Positional Error (mm)",
"Y2 Leaf 23/Positional Error (mm)",
"Y2 Leaf 24/Positional Error (mm)",
"Y2 Leaf 25/Positional Error (mm)",
"Y2 Leaf 26/Positional Error (mm)",
"Y2 Leaf 27/Positional Error (mm)",
"Y2 Leaf 28/Positional Error (mm)",
"Y2 Leaf 29/Positional Error (mm)",
"Y2 Leaf 30/Positional Error (mm)",
"Y2 Leaf 31/Positional Error (mm)",
"Y2 Leaf 32/Positional Error (mm)",
"Y2 Leaf 33/Positional Error (mm)",
"Y2 Leaf 34/Positional Error (mm)",
"Y2 Leaf 35/Positional Error (mm)",
"Y2 Leaf 36/Positional Error (mm)",
"Y2 Leaf 37/Positional Error (mm)",
"Y2 Leaf 38/Positional Error (mm)",
"Y2 Leaf 39/Positional Error (mm)",
"Y2 Leaf 40/Positional Error (mm)",
"Y2 Leaf 41/Positional Error (mm)",
"Y2 Leaf 42/Positional Error (mm)",
"Y2 Leaf 43/Positional Error (mm)",
"Y2 Leaf 44/Positional Error (mm)",
"Y2 Leaf 45/Positional Error (mm)",
"Y2 Leaf 46/Positional Error (mm)",
"Y2 Leaf 47/Positional Error (mm)",
"Y2 Leaf 48/Positional Error (mm)",
"Y2 Leaf 49/Positional Error (mm)",
"Y2 Leaf 50/Positional Error (mm)",
"Y2 Leaf 51/Positional Error (mm)",
"Y2 Leaf 52/Positional Error (mm)",
"Y2 Leaf 53/Positional Error (mm)",
"Y2 Leaf 54/Positional Error (mm)",
"Y2 Leaf 55/Positional Error (mm)",
"Y2 Leaf 56/Positional Error (mm)",
"Y2 Leaf 57/Positional Error (mm)",
"Y2 Leaf 58/Positional Error (mm)",
"Y2 Leaf 59/Positional Error (mm)",
"Y2 Leaf 60/Positional Error (mm)",
"Y2 Leaf 61/Positional Error (mm)",
"Y2 Leaf 62/Positional Error (mm)",
"Y2 Leaf 63/Positional Error (mm)",
"Y2 Leaf 64/Positional Error (mm)",
"Y2 Leaf 65/Positional Error (mm)",
"Y2 Leaf 66/Positional Error (mm)",
"Y2 Leaf 67/Positional Error (mm)",
"Y2 Leaf 68/Positional Error (mm)",
"Y2 Leaf 69/Positional Error (mm)",
"Y2 Leaf 70/Positional Error (mm)",
"Y2 Leaf 71/Positional Error (mm)",
"Y2 Leaf 72/Positional Error (mm)",
"Y2 Leaf 73/Positional Error (mm)",
"Y2 Leaf 74/Positional Error (mm)",
"Y2 Leaf 75/Positional Error (mm)",
"Y2 Leaf 76/Positional Error (mm)",
"Y2 Leaf 77/Positional Error (mm)",
"Y2 Leaf 78/Positional Error (mm)",
"Y2 Leaf 79/Positional Error (mm)",
"Y2 Leaf 80/Positional Error (mm)",
"Y1 Leaf 1/Positional Error (mm)",
"Y1 Leaf 2/Positional Error (mm)",
"Y1 Leaf 3/Positional Error (mm)",
"Y1 Leaf 4/Positional Error (mm)",
"Y1 Leaf 5/Positional Error (mm)",
"Y1 Leaf 6/Positional Error (mm)",
"Y1 Leaf 7/Positional Error (mm)",
"Y1 Leaf 8/Positional Error (mm)",
"Y1 Leaf 9/Positional Error (mm)",
"Y1 Leaf 10/Positional Error (mm)",
"Y1 Leaf 11/Positional Error (mm)",
"Y1 Leaf 12/Positional Error (mm)",
"Y1 Leaf 13/Positional Error (mm)",
"Y1 Leaf 14/Positional Error (mm)",
"Y1 Leaf 15/Positional Error (mm)",
"Y1 Leaf 16/Positional Error (mm)",
"Y1 Leaf 17/Positional Error (mm)",
"Y1 Leaf 18/Positional Error (mm)",
"Y1 Leaf 19/Positional Error (mm)",
"Y1 Leaf 20/Positional Error (mm)",
"Y1 Leaf 21/Positional Error (mm)",
"Y1 Leaf 22/Positional Error (mm)",
"Y1 Leaf 23/Positional Error (mm)",
"Y1 Leaf 24/Positional Error (mm)",
"Y1 Leaf 25/Positional Error (mm)",
"Y1 Leaf 26/Positional Error (mm)",
"Y1 Leaf 27/Positional Error (mm)",
"Y1 Leaf 28/Positional Error (mm)",
"Y1 Leaf 29/Positional Error (mm)",
"Y1 Leaf 30/Positional Error (mm)",
"Y1 Leaf 31/Positional Error (mm)",
"Y1 Leaf 32/Positional Error (mm)",
"Y1 Leaf 33/Positional Error (mm)",
"Y1 Leaf 34/Positional Error (mm)",
"Y1 Leaf 35/Positional Error (mm)",
"Y1 Leaf 36/Positional Error (mm)",
"Y1 Leaf 37/Positional Error (mm)",
"Y1 Leaf 38/Positional Error (mm)",
"Y1 Leaf 39/Positional Error (mm)",
"Y1 Leaf 40/Positional Error (mm)",
"Y1 Leaf 41/Positional Error (mm)",
"Y1 Leaf 42/Positional Error (mm)",
"Y1 Leaf 43/Positional Error (mm)",
"Y1 Leaf 44/Positional Error (mm)",
"Y1 Leaf 45/Positional Error (mm)",
"Y1 Leaf 46/Positional Error (mm)",
"Y1 Leaf 47/Positional Error (mm)",
"Y1 Leaf 48/Positional Error (mm)",
"Y1 Leaf 49/Positional Error (mm)",
"Y1 Leaf 50/Positional Error (mm)",
"Y1 Leaf 51/Positional Error (mm)",
"Y1 Leaf 52/Positional Error (mm)",
"Y1 Leaf 53/Positional Error (mm)",
"Y1 Leaf 54/Positional Error (mm)",
"Y1 Leaf 55/Positional Error (mm)",
"Y1 Leaf 56/Positional Error (mm)",
"Y1 Leaf 57/Positional Error (mm)",
"Y1 Leaf 58/Positional Error (mm)",
"Y1 Leaf 59/Positional Error (mm)",
"Y1 Leaf 60/Positional Error (mm)",
"Y1 Leaf 61/Positional Error (mm)",
"Y1 Leaf 62/Positional Error (mm)",
"Y1 Leaf 63/Positional Error (mm)",
"Y1 Leaf 64/Positional Error (mm)",
"Y1 Leaf 65/Positional Error (mm)",
"Y1 Leaf 66/Positional Error (mm)",
"Y1 Leaf 67/Positional Error (mm)",
"Y1 Leaf 68/Positional Error (mm)",
"Y1 Leaf 69/Positional Error (mm)",
"Y1 Leaf 70/Positional Error (mm)",
"Y1 Leaf 71/Positional Error (mm)",
"Y1 Leaf 72/Positional Error (mm)",
"Y1 Leaf 73/Positional Error (mm)",
"Y1 Leaf 74/Positional Error (mm)",
"Y1 Leaf 75/Positional Error (mm)",
"Y1 Leaf 76/Positional Error (mm)",
"Y1 Leaf 77/Positional Error (mm)",
"Y1 Leaf 78/Positional Error (mm)",
"Y1 Leaf 79/Positional Error (mm)",
"Y1 Leaf 80/Positional Error (mm)"
]
}
Claude's response:
Hello @KARAjihane,
Thank you for providing the configuration file that defines the column names for the converted CSV file. I appreciate you sharing this information. Based on the provided configuration, here's an updated Python code snippet to read the converted CSV file and extract the relevant MLC and gantry information:
import pandas as pd
# Read the converted CSV file
df = pd.read_csv("converted_trf_file.csv")
# Access MLC information
mlc_columns = [col for col in df.columns if col.startswith("Y1 Leaf") or col.startswith("Y2 Leaf")]
mlc_data = df[mlc_columns]
# Access gantry information
gantry_columns = ["Step Gantry/Scaled Actual (deg)", "Step Gantry/Positional Error (deg)"]
gantry_data = df[gantry_columns]
# Perform further processing or analysis on the extracted data
# ...
In this updated code snippet:
-
We read the converted CSV file using
pd.read_csv()and store it in thedfDataFrame. -
To access the MLC information, we create a list called
mlc_columnsthat contains all the column names starting with "Y1 Leaf" or "Y2 Leaf". These columns represent the actual positions of the MLC leaves. We then select these columns from the DataFrame usingdf[mlc_columns]and store the result inmlc_data. -
To access the gantry information, we create a list called
gantry_columnsthat contains the column names "Step Gantry/Scaled Actual (deg)" and "Step Gantry/Positional Error (deg)". These columns represent the actual gantry position and positional error, respectively. We select these columns from the DataFrame usingdf[gantry_columns]and store the result ingantry_data. -
You can then perform further processing or analysis on the extracted
mlc_dataandgantry_databased on your specific requirements.
This code snippet takes into account the column names defined in the provided configuration file and allows you to access the MLC and gantry information from the converted CSV file.
I hope this updated code snippet helps you extract the desired information from the converted TRF file. Let me know if you have any further questions or if there's anything else I can assist you with.
Best regards, Claude
@Matthew-Jennings, we should also have the "comment that triggered the request", include the author. It doesn't seem to be correctly replying to me.
I've successfully implemented the previous code you provided. However, I'm now interested in these informations to create figures similar to those demonstrated in the video titled 'ACPSEM Summer School 2020 -- PyMedPhys -- Global collaborative software development.' Could you please provide the code necessary to generate such figures? that would be really helpful.
Can you copy the figures here that you are referring to
I want to plot these figures using the PyMedPhys GUI example data
I'm pleased to inform you that I've managed to find a solution to what i needed to accomplish. Your advice helped me navigate through the hurdles.
Did you want to be able to do a Winston Lutz arc? We have code that does this live via the icom stream + iView image database wlutz test
The huge benefit there is you can just rotate the gantry dynamically and see the radiation position offset live for any given gantry angle.
It does it live by hooking directly into the backend of the iView database to draw the images out live as they appear when being captured in movie mode, and then pulls the respective collimator and gantry angles out of the live icom stream
Also vis for @sjswerdloff on https://github.com/pymedphys/pymedphys/issues/1845#issuecomment-2024825563
Those were some examples figures demonstrating that during the wlutz arc the beam position would "jump" during a dynamic beam at inconsistent gantry angles. And it would jump on the order of 1 mm.
...that was just one of the many interesting things we found when doing this dynamic arc Winston Lutz test, instead of the traditional four field static angle test.
@laser47-hue, those figures above might interest you also.
Here was another: https://pubmed.ncbi.nlm.nih.gov/34694587/
Linac reported steering error insensitive to 6 MV FFF transverse beam position deviations
https://github.com/pymedphys/pymedphys/issues/1845#issuecomment-2025204282
@KARAjihane, to help future travellers could you please post the solution / code you found in this issue?
These issues end up being searched by people in the future to try and solve their problems. It's super helpful to make sure that the issue concludes with a "and here was the code that solved all my problems"
I'm writing to share a solution I found for plotting figures using PyMedPhys GUI data. Below are the steps and code I used to accomplish this task:
- Converting TRF Files to CSV:
- I utilized the following command to convert TRF files to CSV files, making them readable:
pymedphys trf to-csv "path/to/your/trf/file.trf"
- Note: Replace "path/to/your/trf/file.trf" with the actual path to your TRF file as per the provided advice. The resulting CSV files will be located in the same directory as the TRF file.
- Extracting Information from CSV Files:
- Utilized the DeliveryLogfile function from pymedphys._trf.decode.delivery module to extract essential information such as monitor units, MLC positions, gantry angle, jaw positions, and collimator.
- Plotting the Figure:
- Employed the extracted data to plot a figure resembling the one demonstrated in the video titled 'ACPSEM Summer School 2020 -- PyMedPhys -- Global collaborative software development.' Utilized the following Python code for plotting:
`
import pymedphys
from pymedphys._trf.decode.delivery import DeliveryLogfile
import matplotlib.pyplot as plt
def plot_gantry_vs_field_center(filepath):
delivery_data = DeliveryLogfile.from_trf(filepath)
gantry_angles = delivery_data.gantry
field_centers_y = [position[1] for position in delivery_data.jaw]
plt.figure(figsize=(8, 6))
plt.scatter(gantry_angles, field_centers_y)
plt.xlabel('Gantry Angle (degrees)')
plt.ylabel('Field Center Y Position (mm)')
plt.title('Gantry Angle vs Field Center Y Position')
plt.grid(True)
plt.show()
trf_filepath = "path/to/your/trf/file.trf"
plot_gantry_vs_field_center(trf_filepath)
`
- Ensure to replace "path/to/your/trf/file.trf" with the actual file path to your TRF file. This solution enabled me to effectively plot figures using PyMedPhys GUI data, aligning with the requirements outlined
This is a revised solution for plotting figures using PyMedPhys GUI data, specifically when utilizing 'mlc positions' as either the x-axis or y-axis. Below is the updated code along with the necessary modifications: `
import pymedphys
from pymedphys._trf.decode.delivery import DeliveryLogfile
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import interp1d
def plot_mean_mlc_position_vs_gantry_angle(filepath):
# Load delivery data from the TRF file
delivery_data = DeliveryLogfile.from_trf(filepath)
# Extract gantry angles and MLC positions
gantry_angles = delivery_data.gantry
mlc_positions = delivery_data.mlc
# Calculate the mean MLC position for each leaf bank at each gantry angle
mean_mlc_positions = np.mean(mlc_positions, axis=(0, 2))
# Interpolate the mean MLC positions to match the length of gantry_angles
interp_func = interp1d(np.arange(len(mean_mlc_positions)), mean_mlc_positions)
interpolated_mean_mlc_positions = interp_func(np.linspace(0, len(mean_mlc_positions) - 1,len(gantry_angles)))
# Plot the mean MLC positions against the gantry angles
plt.figure(figsize=(8, 6))
plt.plot(gantry_angles, interpolated_mean_mlc_positions)
plt.xlabel('Gantry Angle (degrees)')
plt.ylabel('Mean MLC Position (mm)')
plt.title('Mean MLC Position vs Gantry Angle')
plt.grid(True)
plt.show()
trf_filepath = "path/to/your/trf/file.trf"
plot_mean_mlc_position_vs_gantry_angle(trf_filepath)`
-
Please ensure to replace "path/to/your/trf/file.trf" with the actual file path to your TRF file.
-
This updated code resolves the compatibility issue when plotting figures with 'mlc positions' as the axis.
Small adjustment to the above, replace all instances of DeliveryLogfile with Delivery imported as:
from pymedphys import Delivery
Currently, the code incorporates a 'delivery' function, which effectively extracts essential parameters such as gantry angle, MLC positions, Monitor Units, jaw positions, and collimator angle.
However, I have encountered a challenge in integrating dose rate data into the code to generate a plot displaying dose rate information. Despite my efforts, I have been unable to devise a method to extract and incorporate dose rate data effectively.
Additionally, I am facing difficulty in determining the time increment necessary for calculating MLC speed accurately. Despite thorough investigation, I have not been able to find time increment in the trf file.
Have you had a look at the mudensity / metersetmap tooling?
https://github.com/pymedphys/pymedphys/issues/434#issue-472618095
Here is also some previous discussion on the topic: https://pymedphys.discourse.group/t/elekta-log-files/196/2?u=simonbiggs
Does anything there help you?
Also, might you be interested in potentially contributing some documentation to PyMedPhys that we can host here https://docs.pymedphys.com/en/latest/ to further help future travelers with these issues you're facing?
On Mon, 1 Apr 2024 at 07:22, KARAjihane @.***> wrote:
Currently, the code incorporates a 'delivery' function, which effectively extracts essential parameters such as gantry angle, MLC positions, Monitor Units, jaw positions, and collimator angle.
However, I have encountered a challenge in integrating dose rate data into the code to generate a plot displaying dose rate information. Despite my efforts, I have been unable to devise a method to extract and incorporate dose rate data effectively.
Additionally, I am facing difficulty in determining the time increment necessary for calculating MLC speed accurately. Despite thorough investigation, I have not been able to find time increment in the trf file.
— Reply to this email directly, view it on GitHub https://github.com/pymedphys/pymedphys/issues/1845#issuecomment-2028895632, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSBK64SBTBLJY4MCU3P55TY3BWAHAVCNFSM6AAAAABFLDFV46VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRYHA4TKNRTGI . You are receiving this because you were mentioned.Message ID: @.***>
40 millisecond increment
Hello again,
Thank you very much for your help and advice so far, which have been beneficial in advancing my thesis. I've encountered another issue and I was wondering if there's a function or command line that could help me convert my DICOM file to a CSV file. Any help or guidance you could provide would be greatly appreciated.
Thank you for your assistance.
What's your end goal?