dms.GetResultList

Sucht nach DMS-Objekten, die der Anfrage entsprechen. Die Festlegung der Zielobjekte und Felder geschieht über ein DMSQuery XML-Anfragedokument, in dem OS-Namen, interne Namen, GUIDs und Datenbanknamen verwendet werden können.

Allgemeine Anfrageeigenschaften lassen sich sowohl als Jobparameter als auch als XML-Attribute im Rootelement der XML-Anfrage setzen — XML-Attribute haben dabei Vorrang.

Das Attribut internal_name des <Archive>-Elements ist nur bei archivübergreifenden Abfragen (mehrere <Archive>-Elemente) erforderlich — vorausgesetzt, auch die enthaltenen <ObjectType>-Elemente verwenden internal_name. Bei Einzelarchiv-Anfragen kann das Attribut entfallen.

1. Eingabeparameter

Name Typ Pflicht Beschreibung

Flags

INT

Ja

Steuerung des Ausgabeformats.
0x00000010 (16) — Ergebnis-XML wird als Datei zurückgegeben, sonst als Buffer.

XML

BASE64

Ja

Anfrage im XML-Format (siehe Ausführliche Beschreibung).

[Encoding]

STRING

Nein

Kodierung des Ergebnisdokuments.
Zulässige Werte: UTF-8, UTF-16. Default: UTF-16.

[Offset]

INT

Nein

Offset für den ersten zurückgegebenen Datensatz. Default: 0.
(siehe Blättern durch Trefferlisten)

[PageSize]

INT

Nein

Anzahl der zurückzugebenden Datensätze. -1 = Alle (Default).
(siehe Blättern durch Trefferlisten)

[MaxHits]

INT

Nein

Maximale Trefferzahl pro Objekttyp. -1 = Alle (Default), 0 = nicht ermitteln.
Hohe Werte können die Performance beeinträchtigen.
(siehe Blättern durch Trefferlisten)

[Sql]

INT

Nein

1 — SQL-Statements werden in das Ergebnisdokument geschrieben (nur LOL). Default: 0.

[Rights]

INT

Nein

1 — Zugriffsrechte (Öffnen/Löschen/Schreiben) werden je Objektinstanz ermittelt (HOL). Default: 0.
(siehe Rechte)

[ObjectInserts]

INT

Nein

1 — Anzahl der einfügbaren Objekte je Objekttyp wird ermittelt. Default: 0.
(siehe Rechte)

[DateFormat]

STRING

Nein

Formatierung zurückgelieferter Datumsangaben
(siehe Datumsformate).

[RegisterContext]

INT

Nein

0 — Bei Registerklauseln werden nur Objekte in Registern angefragt (HOL).
1 — Default (siehe Allgemeines Anfrageverhalten).

[RequestType]

STRING

Nein

Anfragetyp: LOL, INF oder HOL.

[OutputFormat]

STRING

Nein

Ausgabeformat in Abhängigkeit vom Anfragetyp: LOL, HOL oder TXT.
(siehe Ausgabeformate)

[ItemDelimiter]

STRING

Nein

Trennzeichen zwischen Werten bei linearer Liste als einfache Textdatei.
(siehe Ausgabeformate)

[OutputUnicode]

INT

Nein

1 — Rückgabedatei im Textformat wird als Unicode statt ANSI geliefert.
(siehe Parameter Encoding)

[FieldSchema]

STRING

Nein

Standard-Feldschema für alle Objekttypen der Anfrage.
Zulässige Werte: MIN (nur Objekt-ID), ALL (alle Indexfelder), DEF (benutzerdefiniert).
Kann im Anfragedokument durch das Attribut field_schema an <Fields>, <ParentObjects> oder <ChildObjects> überschrieben werden.

[Baseparams]

INT

Nein

1 — Basisparameter werden zurückgeliefert; bei HOL als eigene XML-Struktur. Default: 0.
(siehe Basisparameter)

[FileInfo]

INT

Nein

1 — Dateigröße, Dateiendung und MIME-Typ von Dokumentendateien werden ermittelt.
(siehe Dateiinformationen)

[FollowDocLink]

INT

Nein

1 — Dateiinformationen des verlinkten Dokuments werden zurückgegeben (Verweisdokumente mit grünem Pfeil).
Nur wirksam wenn FileInfo=1. Kann die Performance beeinflussen.

[Variants]

INT

Nein

1 — Variantenbaum wird zurückgegeben, wenn mehrere Varianten des Dokuments existieren.
(siehe Dokumentenvarianten)

[Status]

INT

Nein

1 — Objektstatus wird geliefert: Verknüpfungen sowie für Dokumente Modultyp, Auscheck- und Archivierungsstatus.
(siehe Objektstatus)

[CheckParams]

INT

Nein

0 — Fehlende Parameterwerte in Bedingungen werden ignoriert (Default).
1 — Fehlermeldung, wenn ein referenzierter Parameter nicht definiert wurde.

[AutoStar]

INT

Nein

Automatisches Anhängen von * bei Textfeldbedingungen.
1 = vorne, 2 = hinten, 3 = vorne und hinten.

[QueryLanguage]

INT

Nein

Sprachcode für DMS-Namen in der Anfrage. Default: 0 (Standardsprache).

[QueryCatalogeLocale]

STRING

Nein

Locale (z. B. de_DE) für mehrsprachige Katalogwerte in der Anfrage.
Leerstring → technische Werte werden verwendet.

[OutputLanguage]

INT

Nein

Sprachcode für DMS-Namen im Ergebnisdokument. Default: 0 (Standardsprache).

[OutputCatalogueLocale]

STRING

Nein

Locale (z. B. de_DE) für mehrsprachige Katalogwerte im Ergebnis.
Leerstring → technische Werte werden ausgegeben.

[DisableSearchGroups]

INT

Nein

1 — Suchgruppen werden nicht berücksichtigt; Bedingungen gelten nur für das definierte Feld.
0 — Bedingungen beziehen sich auf alle Felder einer Suchgruppe (Default).

[JobUserGUID]

STRING

Nein

Benutzerkontext für die Jobausführung
(siehe Der Parameter JobUserGUID).

[GarbageMode]

INT

Nein

1 — Nur Objekte aus dem Papierkorb berücksichtigen.
0 — Objekte aus dem Papierkorb ausschließen.

[RegisterTree]

INT

Nein

1 — Registerbaum-Informationen (ID und Typ) als XML ermitteln. Default: 0.

2. Ausgabeparameter

Name Typ Abhängigkeit Beschreibung

Count

INT

Anzahl der zurückgegebenen Datensätze.

TotalHits

INT

Gesamtanzahl der vorhandenen Treffer.

[FileCount]

INT

Optional

Anzahl der zurückgegebenen Dateien (immer 1).

[XML]

BASE64

Wenn Flags0x00000010 (16)

Trefferliste im XML-Format als Buffer.

3. Ausgabedateien

Name Beschreibung

[Dateiliste]

Pfad und Name der XML-Datei mit der Trefferliste.
Nur vorhanden wenn Flags = 0x00000010 (16) gesetzt.

4. Rückgabe

(INT): 0 = Job erfolgreich, sonst Fehlercode
Vollständige Fehlerliste

5. Ausführliche Beschreibung

Eine Anfrage besteht im Wesentlichen aus der Festlegung des angefragten DMS-Objekts, der Auswahl der zurückzugebenden Felder und dem Setzen von Suchbedingungen. Darüber hinaus können Standortinformationen angefragt, Volltext- oder Basisparameterrecherchen durchgeführt, Verknüpfungen zu Objekten aus anderen Schränken erstellt oder Anfragen parametrisiert werden.

5.1. Anfragetypen

Bei Suchanfragen wird prinzipiell zwischen linearen und hierarchischen Anfragen unterschieden. Einen Sonderfall stellen die Detailanfragen dar.

5.1.1. Lineare Anfragen / Lineare Objektlisten (LOL)

Über lineare Anfragen können die einfachen Indexdaten von Objekten eines bestimmten Typs angefordert werden. Tabellensteuerelemente und Mehrfachparameterfelder sind davon ausgeschlossen.

Werden Dokumente oder Register angefragt, können auch Felder des direkten Elternregisters und des Ordners angefragt werden.

5.1.2. Hierarchische Anfragen / Hierarchische Objektlisten (HOL)

Hierarchische Anfragen können nicht nur den Inhalt von Tabellensteuerelementen und Mehrfachparameterfeldern zurückgeben, sondern auch Kindelemente — also z. B. die Register und Dokumente innerhalb des angefragten Ordners. Zusätzlich können Objekteigenschaften wie Dokumentenvarianten, Zugriffsrechte und Notizen angefordert werden.

Im Unterschied zu linearen Anfragen muss bei hierarchischen Anfragen zu jedem Treffer mindestens eine weitere Datenbankanfrage durchgeführt werden. Jede angefragte Objekteigenschaft erhöht diese Zahl.

5.1.3. Gemischte Anfragen (MIX)

Mischung aus linearer und hierarchischer Anfrage: komplexe Informationen zu Ordnern oder Registern kombiniert mit einfachen Informationen zu deren direkten Kindobjekten. Pro Kindobjekttyp wird eine Datenbankanfrage gestellt.

5.2. Ergebnisformate

Das XML-Format für Anfrageergebnisse folgt dem DMSContent XML-Format. Es beginnt immer mit dem <DMSContent>-Element, das über das Attribut format den Typ (LOL, HOL oder MIXED) angibt.

5.2.1. Lineare Objektliste (LOL)

Lineare Objektlisten werden durch das <Rowset>-Element eingeleitet. Sie besitzen einen tabellarischen Aufbau mit Tabellenkopf (<Columns>) und Trefferzeilen (<Rows>).

5.2.2. Hierarchische Objektliste (HOL)

Hierarchische Trefferlisten werden durch das <ObjectList>-Element eingeleitet. Für jedes Trefferobjekt werden Felddefinition und Feldwert geschrieben. Über das <ChildObjects>-Element können beliebige Hierarchietiefen abgebildet werden.

<ObjectList>
  <ObjectType name="Aufnahme" id="196616" type="REGISTER" table="object12">
    <Object id="3226">
      <Fields>
        <Field name="Fallnummer" datatype="TEXT" dbname="feld62" ostype="X" size="20">987654</Field>
        <Field name="Beginn" datatype="DATE" dbname="datum1" ostype="D" size="10">01.10.2003</Field>
        <Field name="Ende" datatype="DATE" dbname="datum2" ostype="D" size="10"/>
      </Fields>
      <ChildObjects>
        <!-- Dokumenttyp 'Arztbrief' -->
        <ObjectType name="Arztbrief" id="262273" type="DOCUMENT" modul="WINDOWS" table="object162">
          <ObjectList>
            <Object id="37744">
              <Fields>
                <Field name="Datum" datatype="DATE" dbname="datum1" ostype="D" size="10">12.11.2003</Field>
                <Field name="erstell. Arzt" datatype="TEXT" dbname="feld1" ostype="X" size="50">DEMO</Field>
                <Field name="Typ" datatype="TEXT" dbname="feld3" ostype="X" size="20">Arztbrief operativ</Field>
                <Field name="Status" datatype="INTEGER" dbname="zahl2" ostype="9" size="1"/>
              </Fields>
            </Object>
          </ObjectList>
          <Statistics startpos="0" pagesize="5" total_hits="1"/>
        </ObjectType>
      </ChildObjects>
    </Object>
  </ObjectType>
  <Messages/>
</ObjectList>

5.2.3. Darstellung der Feldwerte

Im Allgemeinen werden Feldwerte als XML-Elementtext ausgegeben. Bei bestimmten Feldtypen (Zeit, Zeitstempel, Optionsschaltflächen, Systemfeld Besitzer, Bäume, mehrsprachige Kataloge) wird der Datenbankwert als value-Attribut und der Anzeigetext als Elementtext ausgegeben.

Beispiel LOL: <Value value="M">männlich</Value>

Beispiel HOL: <Field value="M" name="Geschlecht" datatype="TEXT" dbname="feld7" ostype="X" size="1">männlich</Field>

5.2.4. Das <Statistics>-Element

Am Ende jeder Trefferliste gibt das <Statistics>-Element Auskunft über den Ergebnisumfang:

<Statistics startpos="20" pagesize="20" total_hits="50"/>

5.2.5. Das <Messages>-Element

Informationen über fehlerhafte Anfragen erscheinen in <Message>-Elementen:

<Messages>
  <Message faultcode="-2116351928" sourcecode="475">
    Die Volltextanfrage konnte nicht durchgeführt werden, da kein Suchtext angegeben wurde.
  </Message>
</Messages>

5.2.6. Kombination von Anfragetypen und Ausgabeformaten

TXT LOL HOL

Anfragetyp

LOL

MIX

HOL

5.3. Allgemeines Anfrageverhalten

In einer Suchanfrage können Suchbedingungen für ein oder mehrere Objekttypen formuliert werden — z. B. bei einer Dokumentenanfrage sowohl für Register als auch für Ordner.

Dieses Verhalten wird über den Parameter RegisterContext gesteuert:

  • 1 (Default) — Suchbedingungen für Register werden berücksichtigt.

  • 0 — Registerklauseln werden ignoriert; es werden nur Objekte in Registern angefragt (HOL).

5.4. Anfragen erstellen

Zur Erstellung einer Anfrage werden zunächst die anzufragenden DMS-Objekte und Felder definiert. Objekte und Felder können identifiziert werden über:

  • name — sprechender OS-Name

  • internal_name — interner Name

  • osguid — OSGUID

  • table / dbname — Datenbanktabellen- oder Spaltenname

5.4.1. Einfaches Beispiel

Alle Ordner des Schranks Patient mit allen Indexdaten anfordern. Das type-Attribut (FOLDER, REGISTER, DOCUMENT) vermeidet Namenskonflikte zwischen gleichnamigen Objekttypen.

<?xml version="1.0" encoding="UTF-8"?>
<DMSQuery>
  <Archive internal_name="patient">
    <ObjectType internal_name="patient_folder" type="FOLDER">
      <Fields field_schema="ALL"/>
    </ObjectType>
  </Archive>
</DMSQuery>

5.4.2. Felder explizit definieren

Werden nicht alle Indexdaten benötigt, setzt man field_schema="DEF" und listet die gewünschten Felder einzeln auf:

<Fields field_schema="DEF">
  <Field internal_name="firstname"/>
  <Field internal_name="postal_code_city"/>
  <Field internal_name="city"/>
</Fields>

5.4.3. Systemfelder

Systemfelder werden mit dem Attribut system="1" angefragt und über internen Namen, GUID oder Datenbankfeldname angegeben. Eine vollständige Übersicht aller verfügbaren Systemfelder bietet Systemfelder.

<Archive internal_name="patient">
  <ObjectType internal_name="images" type="DOCUMENT">
    <Fields field_schema="ALL">
      <Field internal_name="OBJECT_COUNT" system="1"/>
    </Fields>
  </ObjectType>
</Archive>

5.4.4. Sortierung

Sortierung über das Attribut sortpos (Priorität, Wert > 0) und sortorder (ASC / DESC). Felder mit niedrigerem sortpos haben höhere Priorität.

<?xml version="1.0" encoding="UTF-8"?>
<DMSQuery>
  <Archive internal_name="patient">
    <ObjectType internal_name="admission" type="REGISTER">
      <Fields field_schema="ALL">
        <Field internal_name="author" sortpos="1" sortorder="ASC"/>
        <Field internal_name="date" sortpos="2" sortorder="DESC"/>
      </Fields>
    </ObjectType>
  </Archive>
</DMSQuery>

5.5. Suchbedingungen

Bedingungen können für das angefragte Objekt sowie für Eltern- und Kindobjekte formuliert werden. Das <ConditionObject>-Attribut legt fest, für welches Objekt die Bedingungen gelten.

5.5.1. Kombinierte Abfragen über mehrere Objekttypen

Bedingungen können gleichzeitig Felder verschiedener Objekttypen desselben Schranks referenzieren. Der Server gibt nur diejenigen Objekte zurück, bei denen alle Bedingungen erfüllt sind — unabhängig davon, auf welchen Objekttyp sich eine Bedingung bezieht.

Folgende Kombinationen sind möglich:

  • Suche nach einem Dokument mit Bedingungen auf Feldern des Dokuments selbst, seines Registers und seines Ordners.

  • Suche nach einem Register oder Ordner, in dem sich ein Unterobjekt befindet, das einer bestimmten Bedingung entspricht.

Bei verschachtelten Registern steht nur das unmittelbar übergeordnete Register als Bedingungsziel zur Verfügung — dessen Elternregister können nicht referenziert werden.

Variante 1 — Kindobjekte anhand von Elternobjekt-Kriterien suchen

Alle Körpermessungen (body_measurements) abrufen, die sich in einer Aufnahme der Station Kardiologie befinden und bei denen die Körpergröße über 180 cm liegt. Das angefragte Objekt ist das Dokument; die Bedingung auf das Register schränkt den Suchraum auf Aufnahmen der gewünschten Station ein.

<?xml version="1.0" encoding="UTF-8"?>
<DMSQuery>
  <Archive internal_name="patient">
    <ObjectType internal_name="body_measurements" type="DOCUMENT">
      <Fields field_schema="DEF">
        <Field internal_name="body_height_cm"/>
        <Field internal_name="body_weight_kg"/>
      </Fields>
      <Conditions>
        <ConditionObject internal_name="admission" type="REGISTER">
          <FieldCondition internal_name="ward" operator="=">
            <Value>Kardiologie</Value>
          </FieldCondition>
        </ConditionObject>
        <ConditionObject internal_name="body_measurements" type="DOCUMENT">
          <FieldCondition internal_name="body_height_cm" operator="&gt;">
            <Value>180</Value>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

Variante 2 — Elternobjekte anhand von Kindobjekt-Kriterien suchen

Alle Aufnahmen (admission) abrufen, in denen mindestens eine Körpermessung mit einer Körpergröße über 180 cm abgelegt ist. Das angefragte Objekt ist das Register; die Bedingung referenziert ein untergeordnetes Dokument.

<?xml version="1.0" encoding="UTF-8"?>
<DMSQuery>
  <Archive internal_name="patient">
    <ObjectType internal_name="admission" type="REGISTER">
      <Fields field_schema="DEF">
        <Field internal_name="ward"/>
        <Field internal_name="start_date"/>
      </Fields>
      <Conditions>
        <ConditionObject internal_name="body_measurements" type="DOCUMENT">
          <FieldCondition internal_name="body_height_cm" operator="&gt;">
            <Value>180</Value>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

5.5.2. Vergleichsoperatoren

Operator XML-konformes Format

<

<

<=

=

=

!=

!=

>

>

>=

>=

BETWEEN

BETWEEN

NOT BETWEEN

NOT BETWEEN

IN

IN

NOT IN

NOT IN

5.5.3. Platzhalter (Textfelder)

Platzhalter Bedeutung

*

Beliebige Zeichenfolge

?

Einzelnes Zeichen

~

Phonetische Suche (nur MSSQL und Oracle)

Escapezeichen: Backslash — \? sucht nach einem Fragezeichen. LIKE-Operator wird automatisch verwendet, wenn Platzhalter vorhanden sind.

5.5.4. Nullwert

Zur Prüfung auf NULL wird <NULL/> anstelle von <Value> verwendet.

5.5.5. Datum

Datumsangaben können in allen gängigen Formaten übergeben werden. Zweistellige Jahreszahlen: xy < 50 → 20xy, xy ≥ 50 → 19xy.

Bei unvollständigen Datumsangaben mit dem Gleichheitsoperator wird über den entsprechenden Zeitbereich gesucht:

  • =1999BETWEEN 1.1.1999 AND 31.12.1999

  • != 1999NOT BETWEEN 1.1.1999 AND 31.12.1999

Werden zwei <Value>-Elemente angegeben, wird automatisch BETWEEN verwendet.

5.5.6. Suchbedingungen für Tabellenfelder

<DMSQuery>
  <Archive internal_name="test_cabinet">
    <ObjectType internal_name="windoc">
      <Fields field_schema="ALL"/>
      <Conditions>
        <ConditionObject internal_name="windoc">
          <TableCondition name="MeineTabelle">
            <TableColumn name="1.Spalte" operator="=">
              <Value>11</Value>
            </TableColumn>
          </TableCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

5.5.7. Boolsche Verknüpfungen (UND / ODER)

Standardmäßig werden Bedingungen mit UND verknüpft. Für ODER-Verknüpfungen werden Feldbedingungen über <FieldGroup operator="OR"> gruppiert. Schachtelung ist möglich.

<Conditions>
  <ConditionObject internal_name="press_archive">
    <FieldGroup operator="OR">
      <FieldCondition internal_name="subject_area">
        <Value>Technik</Value>
      </FieldCondition>
      <FieldCondition internal_name="created_by">
        <Value>Schmitz</Value>
      </FieldCondition>
    </FieldGroup>
    <Created>
      <From>1.1.2002</From>
      <To>31.12.2003</To>
    </Created>
  </ConditionObject>
</Conditions>

Mehrere <ConditionObject>-Elemente für denselben Objekttyp werden mit ODER verknüpft.

5.5.8. Basisparameter-Suchbedingungen

XML-Element Bedeutung

<Creator>

Ersteller

<Created>

Erstellungsdatum

<Modifier>

Letzter Bearbeiter

<Modified>

Datum der letzten Änderung (zwei Werte → Bereich)

<Owner>

Benutzername des Besitzers

<ArchiveState> / <ArchiveStateValue>

Archivierungsstatus (nur Dokumente):
ARCHIVED, ARCHIVABLE, NOT_ARCHIVABLE, NO_PAGES, PAGE_ERROR, REFERENCE

<Locked> / <LockStateValue>

Auscheckstatus (nur Dokumente):
UNLOCKED, SELF, OTHERS, EXTERNAL

5.5.9. OBJECT_SEARCHFLAGS

Basisparameter-Eigenschaften von Dokumenten als Suchbedingung:

<Conditions>
  <ConditionObject internal_name="document1" type="DOCUMENT">
    <FieldCondition internal_name="OBJECT_SEARCHFLAGS" system="1">
      <Value>68</Value>
    </FieldCondition>
  </ConditionObject>
</Conditions>

Werte werden bitweise kombiniert: Wert 68 = IN_REGISTER (64) UND NOT_ARCHIVABLE (4).

  • Werte der gleichen Gruppe → logisch ODER

  • Werte unterschiedlicher Gruppen → logisch UND

Konstante Hex Dezimal Beschreibung

ARCHIVED

0x0001

1

Dokument ist archiviert

ARCHIVABLE

0x0002

2

Dokument ist zur Archivierung freigegeben

NOT_ARCHIVABLE

0x0004

4

Dokument ist nicht zur Archivierung freigegeben

WITHOUT_PAGES

0x0008

8

Dokument hat keine Seiten

CHECKOUT_BY_ME

0x0010

16

Dokument ist vom aktuellen Benutzer ausgecheckt

CHECKOUT_BY_OTHER

0x0020

32

Dokument ist von einem anderen Benutzer ausgecheckt

IN_REGISTER

0x0040

64

Dokument befindet sich in einem Register

NOT_IN_REGISTER

0x0080

128

Dokument befindet sich in keinem Register (direkt auf Ordnerebene)

EXTERNAL

0x0100

256

Dokument ist ein externes Dokument

LINK

0x0200

512

Dokument ist ein Dokumentverweis

MULTI_LOCATION

0x0400

1024

Dokument befindet sich an mehreren Orten

HAS_VARIANTS

0x0800

2048

Dokument hat Varianten

SIGNED_CURRENT_VERSION

0x1000

4096

Aktuelle Version des Dokuments ist signiert

SIGNED_FORMER_VERSION

0x2000

8192

Eine frühere Version des Dokuments ist signiert

5.5.10. Volltextbedingungen

Über <Fulltext> wird eine Volltextanfrage durchgeführt. Das optionale Attribut query_catalogue_locale legt die Sprache für mehrsprachige Kataloge fest.

5.5.11. Parametrisierung von Anfragen

Parameter werden unterhalb von <DMSQuery> definiert und in Bedingungen über das ref-Attribut im <ParamValue>-Element referenziert:

<DMSQuery>
  <Params>
    <Param name="PatID">3987</Param>
  </Params>
  <Archive internal_name="patient">
    <ObjectType internal_name="patient_folder">
      <Fields field_schema="ALL"/>
      <Conditions>
        <ConditionObject internal_name="patient_folder">
          <FieldCondition internal_name="patient_id">
            <ParamValue ref="PatID"/>
          </FieldCondition>
        </ConditionObject>
      </Conditions>
    </ObjectType>
  </Archive>
</DMSQuery>

5.5.12. Schrankübergreifende Anfragen

Über <ExternalObjects> lassen sich in HOL-Anfragen Informationen aus einem anderen Schrank verknüpfen. Die Verknüpfung geschieht über ein link_name-Attribut am Ausgangsfeld und eine <LinkedValue ref="…​"/>-Referenz im externen Objekt:

<DMSQuery>
  <Archive internal_name="press_archive">
    <ObjectType internal_name="bw_scans">
      <Fields>
        <Field internal_name="document_type"/>
        <Field internal_name="author" link_name="author"/>
        <Field internal_name="date"/>
      </Fields>
      <ExternalObjects>
        <ExternalArchive internal_name="addresses">
          <ExternalObjectType internal_name="addresses">
            <Fields field_schema="ALL"/>
            <SubConditions>
              <FieldCondition internal_name="last_name">
                <LinkedValue ref="author"/>
              </FieldCondition>
            </SubConditions>
          </ExternalObjectType>
        </ExternalArchive>
      </ExternalObjects>
    </ObjectType>
  </Archive>
</DMSQuery>

5.5.13. Standortinformationen

<ParentObjects> ist ein HOL-exklusives Element. Es liefert den vollständigen Objektpfad (Ordner, Register) zum Trefferobjekt mit.

Bei LOL-Anfragen sind Elternfelder nicht über <ParentObjects> verfügbar — Felder des direkten Elternregisters und des Ordners können dort direkt in die <Fields>-Liste aufgenommen werden und erscheinen in der Trefferzeile.

<ParentObjects> unterstützt die Attribute:

  • parent_schema — welche Elterntypen zurückgeliefert werden; Standard: DEF
    Gültige Werte: object_schema (DEF, ALL, REGISTER, DOCUMENTS)

  • field_schema — Standard-Feldauswahl für alle Elternobjekte
    Gültige Werte: field_schema (DEF, ALL, ALLREL, MIN)

Kindelemente:

  • <ParentObjectType> — ein oder mehrere explizit gewünschte Elterntypen

  • <SubObjectType> — das gesuchte Zielobjekt im Pfad (Typ und interner Name)

<DMSQuery requesttype="HOL">
  <Archive internal_name="patient">
    <ObjectType internal_name="medical_letter" type="DOCUMENT">
      <Fields field_schema="DEF">
        <Field internal_name="date"/>
        <Field internal_name="physician"/>
      </Fields>
      <ParentObjects parent_schema="DEF">
        <SubObjectType internal_name="medical_letter" type="DOCUMENT"/>
      </ParentObjects>
    </ObjectType>
  </Archive>
</DMSQuery>

5.5.14. Export hierarchischer Strukturen (HOL)

<ChildObjects> ist ein HOL-exklusives Element. Es bestimmt, welche Kinderobjekte hierarchisch mitgeliefert werden.

Attribute:

  • child_schema — welche Kindtypen zurückgeliefert werden; Standard: DEF
    Gültige Werte: object_schema (DEF, ALL, REGISTER, DOCUMENTS)

  • export_depth — Tiefe der Hierarchie (0 = direkte Kinder, 1 = Kinder und Kindeskinder usw.); Standard: 0

  • field_schema — Standard-Feldauswahl für alle Kindtypen
    Gültige Werte: field_schema (DEF, ALL, ALLREL, MIN)

Kindelemente von <ChildObjects>:

  • <ChildObjectType> — ein Element pro anzufragendem Kindtyp; trägt dieselben Identifikationsattribute wie <ObjectType> plus:

    • alias — Aliasname für gleichnamige Typen in der Trefferliste

    • <Fields> — gewünschte Felder des Kindtyps

    • <SubConditions> — zusätzliche Filterbedingungen für die Kinderobjekte

    • <ExternalObjects> — verknüpfte Fremdarchiv-Objekte der Kinder

<DMSQuery requesttype="HOL">
  <Archive internal_name="patient">
    <ObjectType internal_name="admission" type="REGISTER">
      <Fields field_schema="DEF">
        <Field internal_name="case_number"/>
        <Field internal_name="admission_date"/>
      </Fields>
      <ChildObjects child_schema="DEF" export_depth="0">
        <ChildObjectType internal_name="medical_letter" type="DOCUMENT">
          <Fields field_schema="DEF">
            <Field internal_name="date"/>
            <Field internal_name="physician"/>
          </Fields>
        </ChildObjectType>
      </ChildObjects>
    </ObjectType>
  </Archive>
</DMSQuery>

5.5.15. Volltextrecherchen

<?xml version="1.0" encoding="UTF-8"?>
<DMSQuery>
  <Archive internal_name="patient">
    <FulltextQuery>
      <ChildObjects child_schema="DEF">
        <ChildObjectType internal_name="medical_letter">
          <Fields>
            <Field internal_name="date"/>
            <Field internal_name="senior_physician"/>
            <Field internal_name="type"/>
          </Fields>
        </ChildObjectType>
        <ChildObjectType internal_name="diagnosis">
          <Fields field_schema="ALL"/>
        </ChildObjectType>
      </ChildObjects>
      <Fulltext>Meningitis</Fulltext>
    </FulltextQuery>
  </Archive>
</DMSQuery>

5.5.16. Mehrere Anfragen in einem Dokument

<DMSQuery>
  <Archive internal_name="addresses">
    <ObjectType internal_name="addresses">
      ...
    </ObjectType>
  </Archive>
  <Archive internal_name="patient">
    <ObjectType internal_name="color_images" alias="F2">...</ObjectType>
    <ObjectType internal_name="grayscale_images" alias="G1">...</ObjectType>
    <ObjectType internal_name="color_images" alias="F1">...</ObjectType>
  </Archive>
</DMSQuery>

Das optionale Attribut alias im <ObjectType>-Element ermöglicht gezielten Zugriff auf Ergebnisse gleichnamiger Objekttypen in der Trefferliste.

5.6. Blättern durch Trefferlisten

Über PageSize (Seitengröße), Offset (Startpunkt) und MaxHits (Trefferobergrenze) können Trefferlisten seitenweise abgerufen werden. Das <Statistics>-Element am Ende jeder Trefferliste gibt Auskunft über den Umfang:

<Statistics startpos="20" pagesize="20" total_hits="50"/>

Beispiel: PageSize=20, MaxHits=101, tatsächlich 120 Treffer:

Seite Eingabe <Statistics>-Ausgabe

1

Offset=0

startpos='0' pagesize='20' total_hits='101'

2

Offset=20

startpos='20' pagesize='20' total_hits='101'

3

Offset=40

startpos='40' pagesize='20' total_hits='101'

4

Offset=60

startpos='60' pagesize='20' total_hits='101'

5

Offset=80

startpos='80' pagesize='20' total_hits='101'

Nach Seite 1 ergibt sich: (101-1) / 20 = 5 Seiten. Da total_hits=101 > MaxHits-1=100, gibt es noch weitere Treffer jenseits der Obergrenze.

5.7. Basisparameter

Mit baseparams=1 werden zusätzlich zu den Indexdaten alle Basisparameter geliefert. Bei HOL erscheinen sie in einer eigenen <BaseParams>-Gruppe:

Für alle Objekttypen: Ersteller, Erstellungsdatum, Änderungsperson, Änderungsdatum, Besitzer (Name als Text, GUID als osguid-Attribut).

Für Dokumente zusätzlich: Ein-/Auscheckstatus, Archivierungsstatus, Retentionzeiten.

<BaseParams>
  <Creator>liebe</Creator>
  <Created>12.12.2003</Created>
  <Modifier>root</Modifier>
  <Modified>14.12.2003</Modified>
  <Owner guid="BC1123CDFAAAS">liebe</Owner>
  <ArchiveState>ARCHIVABLE</ArchiveState>
  <Locked>SELF</Locked>
</BaseParams>

5.8. Objektstatus

Mit status=1 im <DMSQuery>-Element werden folgende Statusinformationen je Objekt ermittelt:

  • Verknüpfungen

Für Dokumente zusätzlich:

  • Modultyp

  • Archivierungsstatus

  • Eingecheckt / Ausgecheckt

  • Anzahl der Seiten

  • Anzahl der realen Dokumentseiten (Systemfeld OBJECT_DOCPAGECOUNT)

5.9. Rechte

Mit rights=1 im <DMSQuery>-Element werden je Objekt die Zugriffsrechte des anfragenden Benutzers ermittelt:

Attribut Beschreibung

modify_index

Benutzer darf Indexdaten ändern

delete_object

Benutzer darf das Objekt löschen

export_object

Benutzer darf das Objekt öffnen bzw. exportieren

modify_object

Benutzer darf das Objekt bearbeiten

Beispiel: <Rights modify_index="1" delete_object="1" export_object="1" modify_object="1"/>

Mit ObjectInserts=1 werden je möglichem Kindobjekttyp die einfügbaren Instanzen ermittelt:

<Rights object_inserts="1" modify_index="1" delete_object="1" export_object="1" modify_object="1">
  <ObjectInserts type="65536" count="-1"/>
  <ObjectInserts type="131108" count="-1"/>
  <ObjectInserts type="131119" count="0"/>
  <ObjectInserts type="196608" count="-1"/>
  <ObjectInserts type="262144" count="-1"/>
</Rights>

count="-1" bedeutet keine Einschränkung. Wurde rights=1 nicht gesetzt, werden alle Rechteattribute auf -1 gesetzt.

5.10. Dateiinformationen

Mit fileinfo=1 werden je Dokument folgende Eigenschaften als Attribute in <FileProperties> geschrieben:

Attribut Beschreibung

count

Anzahl der Dateien

size

Dokumentgröße in Bytes

extension

Dateityp-Standarderweiterung

mimetype

MIME-Typ

mimetypegroup

Gruppe des MIME-Typs (z. B. image, document)

linkid

ID des verlinkten Objekts (wenn FollowDocLink=1)

linktypeid

Typ-ID des verlinkten Objekts (wenn FollowDocLink=1)

documentpagecount

Anzahl der Dokumentseiten (wenn bekannt)

Die Attribute extension, mimetype und mimetypegroup stehen bei LOL-Anfragen nicht zur Verfügung und werden nur bei HOL-Anfragen zurückgeliefert.

Beispiel: <FileProperties count="1" size="179489" extension="jpg" mimetype="image/jpeg"/>

5.11. Notizen

Mit dem <DMSQuery>-Attribut remarks="1" werden Notizen und Notizverknüpfungen je angefragtem Dokument zurückgeliefert (nur HOL):

Attribut / Element Beschreibung

id

ID der Notiz

type

Notiztyp: 1=Weiß, 2=Gelb, 3=Grün, 4=Blau

relation

1 bei Objektrelation

medium

Medium-ID (Work-Verzeichnis) oder 0 (Datenbank)

<Creator>

Anlegername (ID als Attribut)

<Created>

Anlegedatum (Timestamp als Attribut)

<Modifier>

Letzter Bearbeiter (ID als Attribut)

<Modified>

Datum der letzten Bearbeitung (Timestamp als Attribut)

<Text>

Notiztext (ID als Attribut; leer bei Objektnotiz)

<Object id="81">
  <Remarks>
    <Remark id="1413" type="1" relation="0" medium="4">
      <Creator id="16">MAIER</Creator>
      <Created value="1143560855">28.03.2006 17:47:35</Created>
      <Modifier id="18">SCHMIDT</Modifier>
      <Modified value="1946463756">30.04.2006 14:50:12</Modified>
      <Text>Notiztext</Text>
    </Remark>
  </Remarks>
</Object>

5.12. Spracheinstellungen

Über lang_id bzw. query_language kann die Sprache für Feld- und Objektnamen in der Anfrage festgelegt werden.

Für mehrsprachige Kataloge stehen QueryCatalogueLocale (Jobparameter), query_catalogue_locale (XML-Attribut am Root oder am Feld) zur Verfügung. Die feldspezifische Locale überschreibt die globale Angabe.

Ein mehrsprachiger Katalog darf innerhalb einer Anfrage nicht mit verschiedenen Locales angefragt werden.

5.13. Icons

Mit icons="1" im <DMSQuery>-Element werden Icon-IDs aller benutzerdefinierten Icons zurückgeliefert. Das iconid-Attribut wird an <Object> angehängt (nur HOL; bei LOL-Anfragen wird icons="1" ignoriert).

Bilddateien zu einer Icon-ID können über cnv.GetIcons abgerufen werden.

5.14. Dokumentenvarianten

Mit variants="1" im <DMSQuery>-Element wird für W-Dokumente der Variantenbaum über <DocumentVariant>- und <DocumentVariants>-Elemente ausgegeben (ohne Indexdaten).

Attribut Bedeutung

is_active

1 = aktive Variante

doc_id

Dokumenten-ID dieser Variante

doc_ver

Versionsbezeichnung

doc_parent

ID der Ursprungsvariante (kann auch ID gelöschter Dokumente enthalten)

Bei Recherchen nach W-Dokumenten wird immer die aktive Variante zurückgegeben.

6. Verwandte Jobs