/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package plugins.hl7parser.GenericDCM;
import java.util.ArrayList;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import plugins.hl7parser.HL7OntologyTerm;
/**
*
* @author roankanninga
*/
public class HL7OrganizerDCM
{
private Node organizer;
private XPath xpath;
String id = "";
String originalText = "";
String codeOntology = "";
private static final String OBSERVATION = "urn:hl7-org:v3:component/urn:hl7-org:v3:observation";
private static final String ORGANIZER_NAME = "urn:hl7-org:v3:code/@displayName";
private static final String ORIGINALTEXT = "urn:hl7-org:v3:code/urn:hl7-org:v3:originalText/text()";
private static final String ID = "urn:hl7-org:v3:id/@root";
private static final String CODE = "urn:hl7-org:v3:code";
public ArrayList<Node> allMeasurementNodes = new ArrayList<Node>();
public String organizerName;
public ArrayList<HL7ObservationDCM> measurements;
public ArrayList<HL7OntologyTerm> hl7OntologyTermOrganizer;
public HL7OrganizerDCM(Node organizer, XPath xpath) throws Exception
{
this.organizer = organizer;
this.xpath = xpath;
readOrganizerName();
readOriginalText();
readID();
NodeList ontologyTermCode = (NodeList) xpath.evaluate(CODE, organizer, XPathConstants.NODESET);
hl7OntologyTermOrganizer = new ArrayList<HL7OntologyTerm>();
for (int i = 1; i < ontologyTermCode.getLength(); i++)
{
HL7OntologyTerm ot = new HL7OntologyTerm(ontologyTermCode.item(i), xpath);
hl7OntologyTermOrganizer.add(ot);
}
NodeList nodes = (NodeList) xpath.compile(OBSERVATION).evaluate(organizer, XPathConstants.NODESET);
this.measurements = new ArrayList<HL7ObservationDCM>();
for (int i = 0; i < nodes.getLength(); i++)
{
HL7ObservationDCM meas = new HL7ObservationDCM(nodes.item(i), xpath);
measurements.add(meas);
}
}
public void readOrganizerName() throws XPathExpressionException
{
Node nameNode = (Node) xpath.evaluate(ORGANIZER_NAME, organizer, XPathConstants.NODE);
this.organizerName = nameNode.getNodeValue();
}
public String getHL7OrganizerNameDCM()
{
return organizerName;
}
public void readOriginalText() throws XPathExpressionException
{
Node nameNode = (Node) xpath.evaluate(ORIGINALTEXT, organizer, XPathConstants.NODE);
this.originalText = nameNode.getNodeValue();
}
public String getOriginalText()
{
return originalText;
}
public void readID() throws XPathExpressionException
{
Node nameNode = (Node) xpath.evaluate(ID, organizer, XPathConstants.NODE);
this.id = nameNode.getNodeValue();
}
public String getId()
{
return id;
}
public ArrayList<HL7OntologyTerm> getHl7OntologyTerms()
{
return hl7OntologyTermOrganizer;
}
}