Anlagen nach TrinkwV abrufen
Das folgende Beispiel zeigt den GraphQL-Abruf von Wasserversorgungsanlagen nach TrinkwV, auf die der angebundene Akteur über entsprechende Leserechte verfügt. Damit Anlagen nach TrinkwV erfolgreich abgefragt und angezeigt werden können, muss der angebundene Akteur über Leserechte für die jeweiligen Anlagen nach TrinkwV verfügen. Dieser Use Case ist insbesondere relevant, wenn Informationen zu Anlagen nach TrinkwV in angebundenen Systemen angezeigt, mit fachlichen Vorgängen verknüpft oder für die Auswahl von Registerdaten genutzt werden sollen.
ws_system:view/api/graphql/serviceWeitere Informationen zu Basis-URLs und Umgebungen stehen im Kapitel Endpunkte.
Welche Abfrage wann?
| Abfrage | Zweck | Eingabe | Rückgabe |
|---|---|---|---|
wsSystemList | Mehrere Anlagen nach TrinkwV abrufen, zum Beispiel für eine Übersicht oder zur Ermittlung der ID für eine Detailabfrage. | input: WsSystemListInput. In diesem Beispiel wird nur pagination verwendet. | Eine Liste von Anlagen nach TrinkwV unter items und die Gesamtzahl unter total. |
wsSystemById | Eine einzelne Anlage nach TrinkwV anhand ihrer id abrufen. | id: ID!. | Ein WsSystemDetails-Objekt mit zusätzlichen Detailbeziehungen und Zugriffsinformationen. |
wsSystemList
wsSystemList eignet sich für Übersichten und Trefferlisten. Die Abfrage liefert die Anlagen nach TrinkwV zurück, für die der angebundene Akteur Leserechte besitzt.
Allgemeine Listenfunktionen wie Pagination, Suche, Filterung und Sortierung werden zentral im Kapitel GraphQL-Variablen und Listenabfragen beschrieben. In diesem Beispiel wird nur pagination verwendet, um die Antwort übersichtlich zu halten.
Objektstruktur und Felder
Die folgende Feldliste dokumentiert die Objektstruktur aus dem vollständigen Beispiel. Die Werte werden unter data.wsSystemList.items zurückgegeben.
Die Badges zeigen die Nullbarkeit aus dem GraphQL-Schema. Non-null bedeutet: Der Wert darf bei ausgewähltem Feld nicht null sein. Nullable bedeutet: Der Wert kann je nach Datensatz, Berechtigung oder konditionaler Struktur null sein.
input
WsSystemListInputtotal
Int!items
[WsSystemItem!]!itemsr
ID!id
ID!name
StringaltId
Stringcomment
StringareaIds
[String!]active
Boolean!editable
Booleanmodification
Modification!items.modificationcreated
ModificationCreated!items.modification.createdat
DateTime!by
ModificationActor!items.modification.created.by__typename
String!id
IDusername
Stringfullname
StringStringgroup
Stringentity
BasicEntityInfoitems.modification.created.by.entityty
BasicEntityType!name
Stringid
ID!r
ID!items.modificationupdated
ModificationUpdateditems.modification.updatedat
DateTimeby
ModificationActoritems.modification.updated.by__typename
Stringid
IDusername
Stringfullname
StringStringgroup
Stringentity
BasicEntityInfoitems.modification.updated.by.entityty
BasicEntityType!name
Stringid
ID!r
ID!items.modificationdeactivatedAt
DateTimeitemskind
XwasserCodeitems.kindcode
String!text
String!desc
StringitemsaltIdFmt
XwasserCodeitems.altIdFmtcode
String!text
String!desc
Stringitemsauthority
BasicEntityInfoitems.authorityr
ID!id
ID!name
Stringty
BasicEntityType!itemswaterSupplier
BasicEntityInfoitems.waterSupplierr
ID!id
ID!name
Stringty
BasicEntityType!itemsresponsible
BasicEntityInfoitems.responsibler
ID!id
ID!name
Stringty
BasicEntityType!query WsSystemList($input: WsSystemListInput) {
wsSystemList(input: $input) {
total
items {
r
id
name
altId
comment
areaIds
active
editable
modification {
created {
at
by {
__typename
... on ModificationIdInfo {
id
}
... on ModificationUserInfo {
id
username
fullname
email
group
entity {
r
id
name
ty
}
}
... on ModificationApiClientInfo {
id
entity {
r
id
name
ty
}
}
}
}
updated {
at
by {
__typename
... on ModificationIdInfo {
id
}
... on ModificationUserInfo {
id
username
fullname
email
group
entity {
r
id
name
ty
}
}
... on ModificationApiClientInfo {
id
entity {
r
id
name
ty
}
}
}
}
deactivatedAt
}
kind {
code
text
desc
}
altIdFmt {
code
text
desc
}
authority {
r
id
name
ty
}
waterSupplier {
r
id
name
ty
}
responsible {
r
id
name
ty
}
}
}
}{
"input": {
"pagination": {
"page": 0,
"limit": 1
}
}
}{
"data": {
"wsSystemList": {
"total": 1,
"items": [
{
"r": "R092901B140EF8706002",
"id": "BY175TWA5884163",
"name": "API Beispielanlage",
"altId": "ALT-WVA-001",
"comment": "Beispielkommentar",
"areaIds": [
"DEBY/0022054530211840/1780994403118"
],
"active": true,
"editable": false,
"modification": {
"created": {
"at": "2026-06-09T08:44:22.063902+00:00",
"by": {
"__typename": "ModificationUserInfo",
"id": "b5a50e97-118b-4676-bdf8-4dc58306f180",
"username": "Vorname.Nachname",
"fullname": "Vorname Nachname",
"email": "vorname.nachname@example.org",
"group": "support",
"entity": null
}
},
"updated": {
"at": "2026-06-10T08:50:32.188985+00:00",
"by": {
"__typename": "ModificationApiClientInfo",
"id": "eac0b836-4b91-4ec9-b0f5-5f0d4d77d901",
"entity": {
"r": "R092901B140EF8706000",
"id": "BY123GA801",
"name": "Muster Gesundheitsamt",
"ty": "HDP"
}
}
},
"deactivatedAt": null
},
"kind": {
"code": "1010",
"text": "a-Anlage: Zentrale Wasserversorgungsanlagen",
"desc": "Zentrale Wasserversorgungsanlagen nach TrinkwV"
},
"altIdFmt": {
"code": "1040",
"text": "OKZ-Nummer/SEBAM",
"desc": null
},
"authority": {
"r": "R092901B140EF8706000",
"id": "BY123GA801",
"name": "Muster Gesundheitsamt",
"ty": "HDP"
},
"waterSupplier": {
"r": "R092901B140EF8706010",
"id": "BT3022054360342528",
"name": "Beispiel Wasserversorger",
"ty": "WSP"
},
"responsible": {
"r": "R092901B140EF8706000",
"id": "BY123GA801",
"name": "Muster Gesundheitsamt",
"ty": "HDP"
}
}
]
}
}
}wsSystemById
wsSystemById wird verwendet, wenn die ID einer Anlage nach TrinkwV bereits bekannt ist. Die ID stammt typischerweise aus wsSystemList.items.id.
Die Detailabfrage liefert dieselben Basisinformationen wie die Listenabfrage und zusätzlich Detailbeziehungen, zum Beispiel zugeordnete Objekte und Zugriffsinformationen.
Detailfelder
Die Detailabfrage verwendet als Variable nur die ID der Anlage nach TrinkwV.
id
ID!objects
BasicEntityInfoList!objectstotal
Int!objects.itemsr
ID!id
ID!name
Stringty
BasicEntityType!access
WsSystemAccessaccessdirect
AccessValue!access.directpresent
Boolean!exclusive
Boolean!true: Es wurde ein eingeschränktes Leserecht erteilt.false: Es wurde ein erweitertes Leserecht erteilt.ty
AccessTy!access.indirectobj
AccessValue!access.indirect.objpresent
Boolean!exclusive
Boolean!true: Es wurde ein eingeschränktes Leserecht erteilt.false: Es wurde ein erweitertes Leserecht erteilt.ty
AccessTy!access.indirectspt
AccessValue!access.indirect.sptpresent
Boolean!exclusive
Boolean!true: Es wurde ein eingeschränktes Leserecht erteilt.false: Es wurde ein erweitertes Leserecht erteilt.ty
AccessTy!accessread
Boolean!write
Boolean!query WsSystemById($id: ID!) {
wsSystemById(id: $id) {
r
id
name
altId
comment
areaIds
active
editable
modification {
created {
at
by {
__typename
... on ModificationIdInfo {
id
}
... on ModificationUserInfo {
id
username
fullname
email
group
entity {
r
id
name
ty
}
}
... on ModificationApiClientInfo {
id
entity {
r
id
name
ty
}
}
}
}
updated {
at
by {
__typename
... on ModificationIdInfo {
id
}
... on ModificationUserInfo {
id
username
fullname
email
group
entity {
r
id
name
ty
}
}
... on ModificationApiClientInfo {
id
entity {
r
id
name
ty
}
}
}
}
deactivatedAt
}
kind {
code
text
desc
}
altIdFmt {
code
text
desc
}
authority {
r
id
name
ty
}
waterSupplier {
r
id
name
ty
}
responsible {
r
id
name
ty
}
objects {
total
items {
r
id
name
ty
}
}
access {
direct {
present
exclusive
ty
}
indirect {
obj {
present
exclusive
ty
}
spt {
present
exclusive
ty
}
}
read
write
}
}
}{
"id": "<DUMMY-SHAPTH-ID>"
}{
"data": {
"wsSystemById": {
"r": "R092901B140EF8706002",
"id": "BY175TWA5884163",
"name": "API Beispielanlage",
"altId": "ALT-WVA-001",
"comment": "Beispielkommentar",
"areaIds": [
"DEBY/0022054530211840/1780994403118"
],
"active": true,
"editable": false,
"modification": {
"created": {
"at": "2026-06-09T08:44:22.063902+00:00",
"by": {
"__typename": "ModificationUserInfo",
"id": "b5a50e97-118b-4676-bdf8-4dc58306f180",
"username": "Vorname.Nachname",
"fullname": "Vorname Nachname",
"email": "vorname.nachname@example.org",
"group": "support",
"entity": null
}
},
"updated": {
"at": "2026-06-10T08:50:32.188985+00:00",
"by": {
"__typename": "ModificationApiClientInfo",
"id": "eac0b836-4b91-4ec9-b0f5-5f0d4d77d901",
"entity": {
"r": "R092901B140EF8706000",
"id": "BY123GA801",
"name": "Muster Gesundheitsamt",
"ty": "HDP"
}
}
},
"deactivatedAt": null
},
"kind": {
"code": "1010",
"text": "a-Anlage: Zentrale Wasserversorgungsanlagen",
"desc": "Zentrale Wasserversorgungsanlagen nach TrinkwV"
},
"altIdFmt": {
"code": "1040",
"text": "OKZ-Nummer/SEBAM",
"desc": null
},
"authority": {
"r": "R092901B140EF8706000",
"id": "BY123GA801",
"name": "Muster Gesundheitsamt",
"ty": "HDP"
},
"waterSupplier": {
"r": "R092901B140EF8706010",
"id": "BT3022054360342528",
"name": "Beispiel Wasserversorger",
"ty": "WSP"
},
"responsible": {
"r": "R092901B140EF8706000",
"id": "BY123GA801",
"name": "Muster Gesundheitsamt",
"ty": "HDP"
},
"objects": {
"total": 1,
"items": [
{
"r": "R092901B140EF8706001",
"id": "BY175OB0721",
"name": "Beispielobjekt",
"ty": "OBJ"
}
]
},
"access": {
"direct": {
"present": true,
"exclusive": false,
"ty": "R"
},
"indirect": {
"obj": {
"present": false,
"exclusive": false,
"ty": "R"
},
"spt": {
"present": false,
"exclusive": false,
"ty": "R"
}
},
"read": true,
"write": false
}
}
}
}Mögliche Rückgabewerte
XWasser-Codes
Felder vom Typ XwasserCode liefern code, text und desc. Die gültigen Werte werden in den XWasser-Codelisten gepflegt. Die allgemeine XWasser-Übersicht ist im XRepository unter XWasser auffindbar. Die folgende Übersicht verlinkt die XRepository-Seiten der Codelisten. Die konkret verwendeten Dateien stehen zur Orientierung daneben. Darunter sind die Codelisten vollständig abgebildet.
| Feld | XRepository | Verwendete Codeliste |
|---|---|---|
kind | Codeliste im XRepository öffnen. | Art der Trinkwasseranlage_2.xml |
altIdFmt | Codeliste im XRepository öffnen. | Format Alternative ID_Gesundheit_1.xml |
Art der Trinkwasseranlage
Verwendete Version: Art der Trinkwasseranlage_2.xml · Hinweis: Ggf. aktuelle Codeliste im XRepository öffnen.
| Code | Art der Trinkwasseranlage | Beschreibung |
|---|---|---|
1010 | a-Anlage: Zentrale Wasserversorgungsanlagen | Zentrale Wasserversorgungsanlagen: Anlagen einschließlich dazugehörender Wassergewinnungsanlagen und eines dazugehörenden Leitungsnetzes, aus denen pro Tag mindestens 10 Kubikmeter Trinkwasser entnommen oder auf festen Leitungswegen an Zwischenabnehmer geliefert werden oder aus denen auf festen Leitungswegen Trinkwasser an mindestens 50 Personen abgegeben wird; §2 Abs. 1 a) TrinkwV |
1020 | b-Anlage: Dezentrale Wasserversorgungsanlagen | Dezentrale Wasserversorgungsanlagen: Anlagen einschließlich dazugehörender Wassergewinnungsanlagen und eines dazugehörenden Leitungsnetzes, aus denen pro Tag weniger als 10 Kubikmeter Trinkwasser entnommen oder im Rahmen einer gewerblichen oder öffentlichen Tätigkeit genutzt werden, ohne dass eine zentrale Wasserversorgungsanlage oder eine Eigenwasserversorgungsanlage vorliegt; §2 Abs. 1 b) TrinkwV |
1030 | c-Anlage: Eigenwasserversorgungsanlagen | Eigenwasserversorgungsanlagen: Anlagen einschließlich dazugehörender Wassergewinnungsanlagen und einer dazugehörenden Trinkwasserinstallation, aus denen pro Tag weniger als 10 Kubikmeter Trinkwasser zur eigenen Nutzung entnommen werden; §2 Abs. 1 c) TrinkwV |
1040 | d-Anlage: Mobile Wasserversorgungsanlagen | Mobile Wasserversorgungsanlagen: bewegliche Anlagen, aus denen Trinkwasser entnommen wird einschließlich Anlagen an Bord von Land-, Wasser- und Luftfahrzeugen sowie Anlagen, aus denen auf Meeresbauwerken Trinkwasser entnommen wird, jeweils einschließlich der Trinkwasserinstallation und etwaiger Wassergewinnungsanlagen; §2 Abs. 1 d) TrinkwV |
1050 | e-Anlage: Gebäudewasserversorgungsanlagen | Gebäudewasserversorgungsanlagen: Anlagen, aus denen aus einer zentralen Wasserversorgungsanlage oder einer dezentralen Wasserversorgungsanlage übernommenes Trinkwasser über eine Trinkwasserinstallation an Verbraucher abgegeben wird; §2 Abs. 1 e) TrinkwV |
1060 | f-Anlage: Zeitweilige Wasserversorgungsanlagen | Zeitweilige Wasserversorgungsanlagen: Anlagen, aus denen Trinkwasser entnommen oder an Verbraucher abgegeben wird und die aa) zeitweise betrieben werden, einschließlich einer dazugehörenden Wassergewinnungsanlage und einer dazugehörenden Trinkwasserinstallation, oder bb) zeitweise an eine zentrale Wasserversorgungsanlage, eine dezentrale Wasserversorgungsanlage, mobile Wasserversorgungsanlage oder eine Gebäudewasserversorgungsanlage angeschlossen sind; §2 Abs. 1 f) TrinkwV |
8010 | Nichttrinkwasseranlage | Nichttrinkwasseranlage gem. §2 Abs. 10 TrinkwV |
9010 | Sonstiges | Sonstige Trinkwasseranlagen, die keiner der Kategorien a-f zuteilbar sind und auch nicht unter Nichttrinkwasseranlage gem. §2 Abs. 10 TrinkwV fällt |
Format Alternative ID Gesundheit
Verwendete Version: Format Alternative ID_Gesundheit_1.xml · Hinweis: Ggf. aktuelle Codeliste im XRepository öffnen.
| Code | Format Alternative ID Gesundheit |
|---|---|
1010 | TEIS/ZTEIS |
1020 | OctoWare |
1030 | LABDÜS |
1040 | OKZ-Nummer/SEBAM |
1050 | NiWaDAB |
1060 | TWIST |
9010 | Sonstiges |
GraphQL-Enums
BasicEntityType
| Wert | Bedeutung |
|---|---|
OLB | Obere Landesbehörde |
OLB_B | Mittlere Landesbehörde |
HDP | Gesundheitsamt bzw. Health Department |
LAB | Zugelassene Untersuchungsstelle bzw. Labor |
LAB_B | Niederlassung einer zugelassenen Untersuchungsstelle |
WSP | Wasserversorger bzw. Betreiber |
WSP_B | Niederlassung eines Wasserversorgers bzw. Betreibers |
SYS | Wasserversorgungsanlage |
OBJ | Objekt |
SPT | Probennahmestelle |
NONE | Kein Entitätstyp bzw. nicht zugeordnet |
AccessTy
| Wert | Bedeutung |
|---|---|
R | Leserecht |
W | Schreibrecht |
Such- und Sortier-Enums
| Enum | Werte | Einsatz |
|---|---|---|
WsSystemSearchField | ID, NAME | Suchfelder für input.search.fields bei wsSystemList |
WsSystemSortField | ID, NAME, CREATED_AT, CREATED_BY, UPDATED_AT, UPDATED_BY | Sortierfelder für input.sort.by bei wsSystemList |
SortOrder | ASC, DESC | Sortierreihenfolge für input.sort.order |