private String getScriptXML(File file) {
   if (file.exists() && file.isFile()) {
     DAScript dascript = DAScript.getInstance(file);
     return dascript.toXMLString();
   }
   return "<script/>";
 }
  /**
   * Check a DicomObject and record any failing lookups in the database.
   *
   * @param fileObject the object to process.
   * @return the same FileObject if the result is true; otherwise null.
   */
  public FileObject process(FileObject fileObject) {
    String cmd;

    lastFileIn = new File(fileObject.getFile().getAbsolutePath());
    lastTimeIn = System.currentTimeMillis();

    if (fileObject instanceof DicomObject) {
      DicomObject dob = (DicomObject) fileObject;
      if (dcmScriptFile != null) {
        DAScript daScript = DAScript.getInstance(dcmScriptFile);
        scriptTable = new ScriptTable(daScript);
        lutProps = LookupTable.getProperties(lutFile);
        synchronized (this) {
          Dataset ds = dob.getDataset();
          charset = ds.getSpecificCharacterSet();
          boolean ok = checkDataset(ds);
          if (!ok) {
            try {
              recman.commit();
            } catch (Exception unable) {
            }
            ;
            if (quarantine != null) quarantine.insert(fileObject);
            return null;
          }
        }
      }
    }
    lastFileOut = new File(fileObject.getFile().getAbsolutePath());
    lastTimeOut = System.currentTimeMillis();
    return fileObject;
  }
 public ScriptTable(DAScript script) {
   super();
   Document scriptXML = script.toXML();
   Element scriptRoot = scriptXML.getDocumentElement();
   Node child = scriptRoot.getFirstChild();
   while (child != null) {
     if ((child instanceof Element) && child.getNodeName().equals("e")) {
       Element eChild = (Element) child;
       if (eChild.getAttribute("en").equals("T")) {
         int tag = StringUtil.getHexInt(eChild.getAttribute("t"));
         String command = eChild.getTextContent();
         Matcher processMatcher = processPattern.matcher(command);
         Matcher lookupMatcher = lookupPattern.matcher(command);
         Integer tagInteger = new Integer(tag);
         if (processMatcher.find() || lookupMatcher.find()) {
           this.put(tagInteger, command);
         }
       }
     }
     child = child.getNextSibling();
   }
 }