Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi
I need to load the value of attribute "code" from the first "organizer" according to the attribute "name" as a reference;
For example: load the value of attribute "code" from the section where attribute name="VC". ( I should get S006).
Here is the XML code:
<entry>
<organizer classCode="BATTERY" moodCode="EVN">
<code name="VC" codeSystem="2.16.840"/>
<component>
<observation classCode="OBS" moodCode="EVN">
<value code="S006" />
</observation>
</component>
</organizer>
<organizer classCode="BATTERY" moodCode="EVN">
<code name="MB" codeSystem="2.16.840"/>
<component>
<observation classCode="OBS" moodCode="EVN">
<value code="S003" />
</observation>
</component>
</organizer>
</entry>
Please help. Thanks.
Somthing like this:
[publicarEspirometries/ClinicalDocument/component/structuredBody/component/section/entry]:
LOAD
[typeCode],
[observationMedia/ID],
[observationMedia/classCode],
[observationMedia/moodCode],
[observationMedia/value],
[observationMedia/value/mediaType],
[observationMedia/value/representation],
[observationMedia/templateId/extension],
[observationMedia/templateId/root],
[organizer/classCode],
[organizer/moodCode],
[organizer/statusCode/code],
[organizer/code/code],
[organizer/code/codeSystem],
[organizer/code/displayName],
[observation/classCode],
[observation/moodCode],
[observation/value/unit],
[observation/value/xsi:type],
[observation/value/value],
[observation/value/code],
[observation/value/codeSystem],
[observation/value/codeSystemName],
[observation/value/displayName],
[observation/statusCode/code],
[observation/code/code],
[observation/code/codeSystem],
[observation/code/displayName],
[observation/templateId/extension],
[observation/templateId/root],
[%Key_section_8DE2BFA8AE16711D],
[%Key_entry_531F1B1B7C50DD70]
FROM [lib://Daten/Section1.xml]
(XmlSimple, table is [publicarEspirometries/ClinicalDocument/component/structuredBody/component/section/entry])
Where Match([organizer/code/code], 'MMFVC', 'MMFVCMB');
[publicarEspirometries/ClinicalDocument/component/structuredBody/component/section/entry/organizer/component]:
LOAD
[organizer/classCode],
[organizer/moodCode],
[organizer/statusCode/code],
[sequenceNumber/value],
[observation/classCode],
[observation/moodCode],
[observation/value/unit],
[observation/value/value],
[observation/value/xsi:type],
[observation/value/code],
[observation/value/displayName],
[observation/value/codeSystem],
[observation/value/digits],
[observation/value/scale/unit],
[observation/value/scale/value],
[observation/value/origin/unit],
[observation/value/origin/value],
[observation/statusCode/code],
[observation/code/code],
[observation/code/codeSystem],
[observation/code/displayName],
[observation/templateId/extension],
[observation/templateId/root],
[%Key_entry_531F1B1B7C50DD70],
[%Key_component_FF3ABE3584473A7D]
FROM [lib://Daten/Section1.xml]
(XmlSimple, table is [publicarEspirometries/ClinicalDocument/component/structuredBody/component/section/entry/organizer/component])
Where Exists([%Key_entry_531F1B1B7C50DD70]) AND [observation/code/code] = 'GQC';
- Ralf
Hi Adnan,
this works like expected with the standard xml processing:
// Start of [section.xml] LOAD statements
organizer:
LOAD classCode,
moodCode,
[component/observation/classCode] as [observation/classCode],
[component/observation/moodCode] as [observation/moodCode],
[component/observation/value/code] as code,
[code/name] as name,
[code/codeSystem] as codeSystem
FROM
(XmlSimple, Table is [entry/organizer]); // End of [section.xml] LOAD statements
- Ralf
Or in Sense, just drag the xml file into the app and it will create a similar LOAD statement..
Thank you Ralf.
But what I really want to do is to load the "code" attribute only from the first organizer where name="VC", so I would get the value "S006" only. I don't know how to do this using script.
You can add a WHERE clause:
[entry/organizer]:
LOAD
[classCode],
[moodCode],
[component/observation/classCode],
[component/observation/moodCode],
[component/observation/value/code],
[code/name],
[code/codeSystem]
FROM [lib://Daten/section.xml]
(XmlSimple, table is [entry/organizer])
WHERE [code/name] = 'VC';
- Ralf
Or if you want just the first occurance nomatter code you can add "First":
[entry/organizer]:
First 1
LOAD
[classCode],
[moodCode],
[component/observation/classCode],
[component/observation/moodCode],
[component/observation/value/code],
[code/name],
[code/codeSystem]
FROM [lib://Daten/section.xml]
(XmlSimple, table is [entry/organizer]) ;
Hi Ralf
When I added the where statement, the LOAD worked fine on the previous section. But when I applied the same on the original XML file, it loaded empty fields. The XML is well formed. There is only one thing that I doubt; in the original XML file, each organizer has several components as above in the section. It's as follows:
<entry>
<organizer>
<component>
</component>
<component>
</component>
</organizer>
<organizer>
<component>
</component>
<component>
</component>
</organizer>
</entry>
Could this be the issue?
Thanks Johan
It worked. But I need to specify a load condition rather than choosing the first value.
There should be all components loaded for this organizer. To check this can you post a real sample here?
Adapting Ralf's script, possibly this:
[entry/organizer]:
LOAD
[classCode],
[moodCode],
[component/observation/classCode],
[component/observation/moodCode],
[component/observation/value/code],
[code/name],
[code/codeSystem]
FROM [lib://Daten/section.xml]
(XmlSimple, table is [entry/organizer])
WHERE [code/name] = 'VC' and Len(component) > 0;
or else use the actual fields:
WHERE [code/name] = 'VC' and Len( [component/observation/classCode]) > 0;