diff --git a/NTO/Healthcare/entities/Diagnosis.ttl b/NTO/Healthcare/entities/Diagnosis.ttl new file mode 100644 index 0000000000..3186549174 --- /dev/null +++ b/NTO/Healthcare/entities/Diagnosis.ttl @@ -0,0 +1,95 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:Diagnosis + a rdfs:Class; + rdfs:subClassOf ogit:Entity; + rdfs:label "Diagnosis"; + dcterms:description "A clinical diagnosis attached to a patient (and optionally a visit). Carries ICD code, free-text diagnosis description, leading-diagnosis and chronic flags. Source-of-truth: pf_diagnosis (17 cols)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ); + ogit:optional-attributes ( + ogit.Healthcare:fileIcd + ogit.Healthcare:fileDiag + ogit.Healthcare:fileText + ogit.Healthcare:createDate + ogit.Healthcare:dbSpezId + ogit.Healthcare:fileLd + ogit.Healthcare:fileKd + ogit.Healthcare:fileDate + ); + ogit:indexed-attributes ( + ogit.Healthcare:fileIcd + ogit.Healthcare:createDate + ogit.Healthcare:fileLd + ); + ogit:allowed ( + [ ogit:belongs ogit.Healthcare:Patient ] + [ ogit:relates ogit.Healthcare:Visit ] + ); +. + +ogit.Healthcare:fileIcd + a ogit:Property; + rdfs:label "fileIcd"; + dcterms:description "ICD-10 code for the diagnosis (pf_diagnosis.file_icd)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.file_icd"; + ogit:type "xsd:string" . + +ogit.Healthcare:fileDiag + a ogit:Property; + rdfs:label "fileDiag"; + dcterms:description "Short diagnosis label (pf_diagnosis.file_diag)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.file_diag"; + ogit:type "xsd:string" . + +ogit.Healthcare:fileText + a ogit:Property; + rdfs:label "fileText"; + dcterms:description "Free-text clinical description (pf_diagnosis.file_Text)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.file_Text"; + ogit:type "xsd:string" . + +ogit.Healthcare:createDate + a ogit:Property; + rdfs:label "createDate"; + dcterms:description "Entry creation timestamp (pf_diagnosis.d_createdate)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.d_createdate"; + ogit:type "xsd:dateTime" . + +ogit.Healthcare:dbSpezId + a ogit:Property; + rdfs:label "dbSpezId"; + dcterms:description "Specialty FK -> combo_spez.id (pf_diagnosis.db_spezid)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.db_spezid"; + ogit:type "xsd:integer" . + +ogit.Healthcare:fileLd + a ogit:Property; + rdfs:label "fileLd"; + dcterms:description "Leading-diagnosis flag (pf_diagnosis.file_ld)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.file_ld"; + ogit:type "xsd:boolean" . + +ogit.Healthcare:fileKd + a ogit:Property; + rdfs:label "fileKd"; + dcterms:description "Chronic-diagnosis flag (pf_diagnosis.file_kd)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.file_kd"; + ogit:type "xsd:boolean" . + +ogit.Healthcare:fileDate + a ogit:Property; + rdfs:label "fileDate"; + dcterms:description "Clinical event date the diagnosis refers to (pf_diagnosis.file_date)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_diagnosis.file_date"; + ogit:type "xsd:dateTime" . diff --git a/NTO/Healthcare/entities/LabValue.ttl b/NTO/Healthcare/entities/LabValue.ttl new file mode 100644 index 0000000000..d2e2cc63bb --- /dev/null +++ b/NTO/Healthcare/entities/LabValue.ttl @@ -0,0 +1,62 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:LabValue + a rdfs:Class; + rdfs:subClassOf ogit:Entity; + rdfs:label "LabValue"; + dcterms:description "A laboratory measurement for a patient. LOINC-coded test (loincid) with a numeric value (werte) and lab-internal id. Source-of-truth: pf_laboratory_values (9 cols)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_laboratory_values"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ); + ogit:optional-attributes ( + ogit.Healthcare:createDate + ogit.Healthcare:labId + ogit.Healthcare:loincId + ogit.Healthcare:werte + ); + ogit:indexed-attributes ( + ogit.Healthcare:createDate + ogit.Healthcare:loincId + ); + ogit:allowed ( + [ ogit:belongs ogit.Healthcare:Patient ] + [ ogit:relates ogit.Healthcare:loincRef ] + ); +. + +ogit.Healthcare:labId + a ogit:Property; + rdfs:label "labId"; + dcterms:description "Laboratory FK / partner identifier (pf_laboratory_values.labid)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_laboratory_values.labid"; + ogit:type "xsd:integer" . + +ogit.Healthcare:loincId + a ogit:Property; + rdfs:label "loincId"; + dcterms:description "LOINC reference code identifier (pf_laboratory_values.loincid)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_laboratory_values.loincid"; + ogit:type "xsd:integer" . + +ogit.Healthcare:werte + a ogit:Property; + rdfs:label "werte"; + dcterms:description "Numeric measured value (pf_laboratory_values.werte)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_laboratory_values.werte"; + ogit:type "xsd:float" . + +ogit.Healthcare:loincRef + a ogit:Property; + rdfs:label "loincRef"; + dcterms:description "Out-of-namespace reference to LOINC concept. Carried as a property reference rather than an in-namespace entity since LOINC is governed externally."; + dcterms:source "loinc:"; + ogit:type "xsd:anyURI" . diff --git a/NTO/Healthcare/entities/Medication.ttl b/NTO/Healthcare/entities/Medication.ttl new file mode 100644 index 0000000000..f27b605fc7 --- /dev/null +++ b/NTO/Healthcare/entities/Medication.ttl @@ -0,0 +1,124 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:Medication + a rdfs:Class; + rdfs:subClassOf ogit:Entity; + rdfs:label "Medication"; + dcterms:description "A prescribed / dispensed medication for a patient. Carries product id, dose, interval, daily dose, dose unit, stop reason, start/stop dates. Source-of-truth: pat_medication (25 cols)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ); + ogit:optional-attributes ( + ogit.Healthcare:filePraepId + ogit.Healthcare:fileMedicineName + ogit.Healthcare:fileMedicineDose + ogit.Healthcare:fileMedicineTyp + ogit.Healthcare:fileStart + ogit.Healthcare:fileStop + ogit.Healthcare:fileNotice + ogit.Healthcare:medicationInterval + ogit.Healthcare:medicationDailyDose + ogit.Healthcare:medicationStopReason + ogit.Healthcare:medicationDoseUnit + ogit.Healthcare:dbSourceDb + ); + ogit:indexed-attributes ( + ogit.Healthcare:filePraepId + ogit.Healthcare:fileMedicineName + ogit.Healthcare:fileStart + ); + ogit:allowed ( + [ ogit:belongs ogit.Healthcare:Patient ] + [ ogit:relates ogit.Healthcare:combo_medication_typ ] + [ ogit:relates ogit.Healthcare:combo_medication_interval ] + [ ogit:relates ogit.Healthcare:combo_medication_dailydose ] + [ ogit:relates ogit.Healthcare:combo_medication_dose_unit ] + [ ogit:relates ogit.Healthcare:combo_medication_stop_reason ] + ); +. + +ogit.Healthcare:filePraepId + a ogit:Property; + rdfs:label "filePraepId"; + dcterms:description "Drug-product identifier in the medicines master (pat_medication.file_praepid)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.file_praepid"; + ogit:type "xsd:string" . + +ogit.Healthcare:fileMedicineName + a ogit:Property; + rdfs:label "fileMedicineName"; + dcterms:description "Trade / display name of the medicine (pat_medication.file_medicine_name)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.file_medicine_name"; + ogit:type "xsd:string" . + +ogit.Healthcare:fileMedicineDose + a ogit:Property; + rdfs:label "fileMedicineDose"; + dcterms:description "Numeric per-administration dose (pat_medication.file_medicine_dose)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.file_medicine_dose"; + ogit:type "xsd:float" . + +ogit.Healthcare:fileMedicineTyp + a ogit:Property; + rdfs:label "fileMedicineTyp"; + dcterms:description "Medicine type FK -> combo_medication_typ.id (pat_medication.file_medicine_typ)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.file_medicine_typ"; + ogit:type "xsd:integer" . + +ogit.Healthcare:fileStart + a ogit:Property; + rdfs:label "fileStart"; + dcterms:description "Treatment start date (pat_medication.file_start)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.file_start"; + ogit:type "xsd:dateTime" . + +ogit.Healthcare:fileStop + a ogit:Property; + rdfs:label "fileStop"; + dcterms:description "Treatment stop date (pat_medication.file_stop)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.file_stop"; + ogit:type "xsd:dateTime" . + +ogit.Healthcare:fileNotice + a ogit:Property; + rdfs:label "fileNotice"; + dcterms:description "Free-text notice attached to the prescription (pat_medication.file_notice)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.file_notice"; + ogit:type "xsd:string" . + +ogit.Healthcare:medicationInterval + a ogit:Property; + rdfs:label "medicationInterval"; + dcterms:description "Interval-of-administration FK -> combo_medication_interval.id (pat_medication.pf_medication_interval)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.pf_medication_interval"; + ogit:type "xsd:integer" . + +ogit.Healthcare:medicationDailyDose + a ogit:Property; + rdfs:label "medicationDailyDose"; + dcterms:description "Daily-dose FK -> combo_medication_dailydose.id (pat_medication.pf_medication_dailydose)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.pf_medication_dailydose"; + ogit:type "xsd:integer" . + +ogit.Healthcare:medicationStopReason + a ogit:Property; + rdfs:label "medicationStopReason"; + dcterms:description "Stop-reason FK -> combo_medication_stop_reason.id (pat_medication.pf_medication_stop_reason)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.pf_medication_stop_reason"; + ogit:type "xsd:integer" . + +ogit.Healthcare:medicationDoseUnit + a ogit:Property; + rdfs:label "medicationDoseUnit"; + dcterms:description "Dose-unit FK -> combo_medication_dose_unit.id (pat_medication.pf_medication_dose_unit)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pat_medication.pf_medication_dose_unit"; + ogit:type "xsd:integer" . diff --git a/NTO/Healthcare/entities/Patient.ttl b/NTO/Healthcare/entities/Patient.ttl new file mode 100644 index 0000000000..93d94b6ed8 --- /dev/null +++ b/NTO/Healthcare/entities/Patient.ttl @@ -0,0 +1,166 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:Patient + a rdfs:Class; + rdfs:subClassOf ogit:Entity; + rdfs:label "Patient"; + dcterms:description "A patient record in a clinical practice. Identified by an internal id, scoped to a tenant (clinic), with demographic, contact, and specialty fields. Source-of-truth: praxis_patient (30 cols)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ); + ogit:optional-attributes ( + ogit.Healthcare:firstname + ogit.Healthcare:lastname + ogit.Healthcare:birth + ogit.Healthcare:sexm + ogit.Healthcare:sexf + ogit.Healthcare:sexd + ogit.Healthcare:ethnic + ogit.Healthcare:mail + ogit.Healthcare:mobil + ogit.Healthcare:country + ogit.Healthcare:zip + ogit.Healthcare:place + ogit.Healthcare:street + ogit.Healthcare:spez + ogit.Healthcare:title1 + ogit.Healthcare:title2 + ogit.Healthcare:anomize + ); + ogit:indexed-attributes ( + ogit.Healthcare:lastname + ogit.Healthcare:birth + ogit.Healthcare:mail + ); + ogit:allowed ( + [ ogit:belongs ogit:Tenant ] + ); +. + +ogit.Healthcare:firstname + a ogit:Property; + rdfs:label "firstname"; + dcterms:description "Patient given name (praxis_patient.p_firstname)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_firstname"; + ogit:type "xsd:string" . + +ogit.Healthcare:lastname + a ogit:Property; + rdfs:label "lastname"; + dcterms:description "Patient family name (praxis_patient.p_lastname)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_lastname"; + ogit:type "xsd:string" . + +ogit.Healthcare:birth + a ogit:Property; + rdfs:label "birth"; + dcterms:description "Patient date of birth (praxis_patient.p_birth)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_birth"; + ogit:type "xsd:dateTime" . + +ogit.Healthcare:sexm + a ogit:Property; + rdfs:label "sexm"; + dcterms:description "Boolean: patient identifies as male (praxis_patient.p_sexm)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_sexm"; + ogit:type "xsd:boolean" . + +ogit.Healthcare:sexf + a ogit:Property; + rdfs:label "sexf"; + dcterms:description "Boolean: patient identifies as female (praxis_patient.p_sexf)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_sexf"; + ogit:type "xsd:boolean" . + +ogit.Healthcare:sexd + a ogit:Property; + rdfs:label "sexd"; + dcterms:description "Boolean: patient identifies as diverse (praxis_patient.p_sexd)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_sexd"; + ogit:type "xsd:boolean" . + +ogit.Healthcare:ethnic + a ogit:Property; + rdfs:label "ethnic"; + dcterms:description "Self-declared ethnicity (praxis_patient.p_ethnic)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_ethnic"; + ogit:type "xsd:string" . + +ogit.Healthcare:mail + a ogit:Property; + rdfs:label "mail"; + dcterms:description "Patient email (praxis_patient.p_mail)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_mail"; + ogit:type "xsd:string" . + +ogit.Healthcare:mobil + a ogit:Property; + rdfs:label "mobil"; + dcterms:description "Patient mobile phone (praxis_patient.p_mobil)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_mobil"; + ogit:type "xsd:string" . + +ogit.Healthcare:country + a ogit:Property; + rdfs:label "country"; + dcterms:description "Patient country (praxis_patient.p_country)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_country"; + ogit:type "xsd:string" . + +ogit.Healthcare:zip + a ogit:Property; + rdfs:label "zip"; + dcterms:description "Postal code (praxis_patient.p_zip)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_zip"; + ogit:type "xsd:string" . + +ogit.Healthcare:place + a ogit:Property; + rdfs:label "place"; + dcterms:description "City / place of residence (praxis_patient.p_place)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_place"; + ogit:type "xsd:string" . + +ogit.Healthcare:street + a ogit:Property; + rdfs:label "street"; + dcterms:description "Street address (praxis_patient.p_street)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_street"; + ogit:type "xsd:string" . + +ogit.Healthcare:spez + a ogit:Property; + rdfs:label "spez"; + dcterms:description "Specialty / profile assigned to the patient (praxis_patient.p_spez)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_spez"; + ogit:type "xsd:string" . + +ogit.Healthcare:title1 + a ogit:Property; + rdfs:label "title1"; + dcterms:description "Honorific title (praxis_patient.p_title1)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_title1"; + ogit:type "xsd:string" . + +ogit.Healthcare:title2 + a ogit:Property; + rdfs:label "title2"; + dcterms:description "Academic title (praxis_patient.p_title2)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_title2"; + ogit:type "xsd:string" . + +ogit.Healthcare:anomize + a ogit:Property; + rdfs:label "anomize"; + dcterms:description "Anonymisation flag for research export (praxis_patient.p_anomize)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient.p_anomize"; + ogit:type "xsd:boolean" . diff --git a/NTO/Healthcare/entities/Treatment.ttl b/NTO/Healthcare/entities/Treatment.ttl new file mode 100644 index 0000000000..2379c82542 --- /dev/null +++ b/NTO/Healthcare/entities/Treatment.ttl @@ -0,0 +1,57 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:Treatment + a rdfs:Class; + rdfs:subClassOf ogit:Entity; + rdfs:label "Treatment"; + dcterms:description "A therapy / treatment record attached to a patient. Free-text-driven (keyword + Text), provenance-aware (db_sourcedb). Source-of-truth: pf_therapy (16 cols)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_therapy"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ); + ogit:optional-attributes ( + ogit.Healthcare:fileKeyword + ogit.Healthcare:fileText + ogit.Healthcare:createDate + ogit.Healthcare:fileDate + ogit.Healthcare:dbSpezId + ogit.Healthcare:dbSourceDb + ogit.Healthcare:dbSourceId + ); + ogit:indexed-attributes ( + ogit.Healthcare:fileKeyword + ogit.Healthcare:createDate + ); + ogit:allowed ( + [ ogit:belongs ogit.Healthcare:Patient ] + ); +. + +ogit.Healthcare:fileKeyword + a ogit:Property; + rdfs:label "fileKeyword"; + dcterms:description "Therapy keyword / short label (pf_therapy.file_keyword)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_therapy.file_keyword"; + ogit:type "xsd:string" . + +ogit.Healthcare:dbSourceDb + a ogit:Property; + rdfs:label "dbSourceDb"; + dcterms:description "Provenance: name of the source database the row was imported from (pf_therapy.db_sourcedb)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_therapy.db_sourcedb"; + ogit:type "xsd:string" . + +ogit.Healthcare:dbSourceId + a ogit:Property; + rdfs:label "dbSourceId"; + dcterms:description "Provenance: row id in the source database (pf_therapy.db_sourceid)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_therapy.db_sourceid"; + ogit:type "xsd:integer" . diff --git a/NTO/Healthcare/entities/Visit.ttl b/NTO/Healthcare/entities/Visit.ttl new file mode 100644 index 0000000000..acb5afaa6d --- /dev/null +++ b/NTO/Healthcare/entities/Visit.ttl @@ -0,0 +1,86 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:Visit + a rdfs:Class; + rdfs:subClassOf ogit:Entity; + rdfs:label "Visit"; + dcterms:description "A patient visit / waiting-room session — login, doctor assignment, priority, time-in-waiting and logout. Source-of-truth: praxis_patient_waitingroom."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ); + ogit:optional-attributes ( + ogit.Healthcare:waitingroomId + ogit.Healthcare:toDocId + ogit.Healthcare:loginAt + ogit.Healthcare:logoutAt + ogit.Healthcare:timeInWaiting + ogit.Healthcare:priority + ogit.Healthcare:noticeForDoc + ); + ogit:indexed-attributes ( + ogit.Healthcare:loginAt + ogit.Healthcare:toDocId + ogit.Healthcare:priority + ); + ogit:allowed ( + [ ogit:belongs ogit.Healthcare:Patient ] + ); +. + +ogit.Healthcare:waitingroomId + a ogit:Property; + rdfs:label "waitingroomId"; + dcterms:description "FK to praxis_waitingroom (praxis_patient_waitingroom.praxis_waitingroomid)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom.praxis_waitingroomid"; + ogit:type "xsd:integer" . + +ogit.Healthcare:toDocId + a ogit:Property; + rdfs:label "toDocId"; + dcterms:description "Doctor assigned to handle the visit (praxis_patient_waitingroom.p_to_doc_id)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom.p_to_doc_id"; + ogit:type "xsd:integer" . + +ogit.Healthcare:loginAt + a ogit:Property; + rdfs:label "loginAt"; + dcterms:description "Patient login time into waiting room (praxis_patient_waitingroom.p_login)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom.p_login"; + ogit:type "xsd:dateTime" . + +ogit.Healthcare:logoutAt + a ogit:Property; + rdfs:label "logoutAt"; + dcterms:description "Patient logout / visit-end time (praxis_patient_waitingroom.p_logout)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom.p_logout"; + ogit:type "xsd:dateTime" . + +ogit.Healthcare:timeInWaiting + a ogit:Property; + rdfs:label "timeInWaiting"; + dcterms:description "Computed waiting duration in minutes (praxis_patient_waitingroom.p_time_in_waiting)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom.p_time_in_waiting"; + ogit:type "xsd:integer" . + +ogit.Healthcare:priority + a ogit:Property; + rdfs:label "priority"; + dcterms:description "Visit triage priority (praxis_patient_waitingroom.p_priority)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom.p_priority"; + ogit:type "xsd:integer" . + +ogit.Healthcare:noticeForDoc + a ogit:Property; + rdfs:label "noticeForDoc"; + dcterms:description "Free-text reception notice for the doctor (praxis_patient_waitingroom.p_notice_for_doc)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:praxis_patient_waitingroom.p_notice_for_doc"; + ogit:type "xsd:string" . diff --git a/NTO/Healthcare/entities/VitalSign.ttl b/NTO/Healthcare/entities/VitalSign.ttl new file mode 100644 index 0000000000..4e0c944535 --- /dev/null +++ b/NTO/Healthcare/entities/VitalSign.ttl @@ -0,0 +1,60 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:VitalSign + a rdfs:Class; + rdfs:subClassOf ogit:Entity; + rdfs:label "VitalSign"; + dcterms:description "A patient vital-sign measurement. Modelled here as the base class for the pf_vital_* family — the canonical / minimal source-of-truth is pf_vital_bloodpressure (id, pid, datum, sys, dia, pulse). Subclasses (pf_vital_dynmodule, pf_vital_temperature, etc.) extend with module-specific columns."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_vital_bloodpressure"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ); + ogit:optional-attributes ( + ogit.Healthcare:datum + ogit.Healthcare:bloodPressureSystolic + ogit.Healthcare:bloodPressureDiastolic + ogit.Healthcare:pulse + ); + ogit:indexed-attributes ( + ogit.Healthcare:datum + ); + ogit:allowed ( + [ ogit:belongs ogit.Healthcare:Patient ] + ); +. + +ogit.Healthcare:datum + a ogit:Property; + rdfs:label "datum"; + dcterms:description "Measurement timestamp (pf_vital_bloodpressure.datum)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_vital_bloodpressure.datum"; + ogit:type "xsd:dateTime" . + +ogit.Healthcare:bloodPressureSystolic + a ogit:Property; + rdfs:label "bloodPressureSystolic"; + dcterms:description "Systolic blood pressure in mmHg (pf_vital_bloodpressure.sys)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_vital_bloodpressure.sys"; + ogit:type "xsd:float" . + +ogit.Healthcare:bloodPressureDiastolic + a ogit:Property; + rdfs:label "bloodPressureDiastolic"; + dcterms:description "Diastolic blood pressure in mmHg (pf_vital_bloodpressure.dia)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_vital_bloodpressure.dia"; + ogit:type "xsd:float" . + +ogit.Healthcare:pulse + a ogit:Property; + rdfs:label "pulse"; + dcterms:description "Pulse rate (bpm) (pf_vital_bloodpressure.pulse)."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:pf_vital_bloodpressure.pulse"; + ogit:type "xsd:float" . diff --git a/NTO/Healthcare/enumerations/combo_addtreatment.ttl b/NTO/Healthcare/enumerations/combo_addtreatment.ttl new file mode 100644 index 0000000000..f7b7eb15e6 --- /dev/null +++ b/NTO/Healthcare/enumerations/combo_addtreatment.ttl @@ -0,0 +1,28 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:combo_addtreatment + a rdfs:Class; + rdfs:subClassOf ogit:Enumeration; + rdfs:label "combo_addtreatment"; + dcterms:description "Enumeration of additional-treatment categories attached to a clinical record. Values populated as a follow-on import from MedCare-rs."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:combo_addtreatment"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ogit:name + ); + ogit:optional-attributes ( + ); + ogit:indexed-attributes ( + ogit:name + ); + ogit:allowed ( + ); +. diff --git a/NTO/Healthcare/enumerations/combo_medication_dailydose.ttl b/NTO/Healthcare/enumerations/combo_medication_dailydose.ttl new file mode 100644 index 0000000000..27a37ae8cf --- /dev/null +++ b/NTO/Healthcare/enumerations/combo_medication_dailydose.ttl @@ -0,0 +1,28 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:combo_medication_dailydose + a rdfs:Class; + rdfs:subClassOf ogit:Enumeration; + rdfs:label "combo_medication_dailydose"; + dcterms:description "Enumeration of medication daily-dose patterns. Values populated as a follow-on import from MedCare-rs."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:combo_medication_dailydose"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ogit:name + ); + ogit:optional-attributes ( + ); + ogit:indexed-attributes ( + ogit:name + ); + ogit:allowed ( + ); +. diff --git a/NTO/Healthcare/enumerations/combo_medication_dose_unit.ttl b/NTO/Healthcare/enumerations/combo_medication_dose_unit.ttl new file mode 100644 index 0000000000..b2b4e57c97 --- /dev/null +++ b/NTO/Healthcare/enumerations/combo_medication_dose_unit.ttl @@ -0,0 +1,28 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:combo_medication_dose_unit + a rdfs:Class; + rdfs:subClassOf ogit:Enumeration; + rdfs:label "combo_medication_dose_unit"; + dcterms:description "Enumeration of medication dose units (mg, ml, IU, etc.). Values populated as a follow-on import from MedCare-rs."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:combo_medication_dose_unit"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ogit:name + ); + ogit:optional-attributes ( + ); + ogit:indexed-attributes ( + ogit:name + ); + ogit:allowed ( + ); +. diff --git a/NTO/Healthcare/enumerations/combo_medication_interval.ttl b/NTO/Healthcare/enumerations/combo_medication_interval.ttl new file mode 100644 index 0000000000..57e7d33ae8 --- /dev/null +++ b/NTO/Healthcare/enumerations/combo_medication_interval.ttl @@ -0,0 +1,28 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:combo_medication_interval + a rdfs:Class; + rdfs:subClassOf ogit:Enumeration; + rdfs:label "combo_medication_interval"; + dcterms:description "Enumeration of medication administration intervals (e.g. once-a-day, twice-a-day, weekly). Values populated as a follow-on import from MedCare-rs."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:combo_medication_interval"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ogit:name + ); + ogit:optional-attributes ( + ); + ogit:indexed-attributes ( + ogit:name + ); + ogit:allowed ( + ); +. diff --git a/NTO/Healthcare/enumerations/combo_medication_stop_reason.ttl b/NTO/Healthcare/enumerations/combo_medication_stop_reason.ttl new file mode 100644 index 0000000000..d787d1dc6c --- /dev/null +++ b/NTO/Healthcare/enumerations/combo_medication_stop_reason.ttl @@ -0,0 +1,28 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:combo_medication_stop_reason + a rdfs:Class; + rdfs:subClassOf ogit:Enumeration; + rdfs:label "combo_medication_stop_reason"; + dcterms:description "Enumeration of reasons for stopping a medication (cured, side-effect, replaced, etc.). Values populated as a follow-on import from MedCare-rs."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:combo_medication_stop_reason"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ogit:name + ); + ogit:optional-attributes ( + ); + ogit:indexed-attributes ( + ogit:name + ); + ogit:allowed ( + ); +. diff --git a/NTO/Healthcare/enumerations/combo_medication_typ.ttl b/NTO/Healthcare/enumerations/combo_medication_typ.ttl new file mode 100644 index 0000000000..ccbab9fcac --- /dev/null +++ b/NTO/Healthcare/enumerations/combo_medication_typ.ttl @@ -0,0 +1,28 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:combo_medication_typ + a rdfs:Class; + rdfs:subClassOf ogit:Enumeration; + rdfs:label "combo_medication_typ"; + dcterms:description "Enumeration of medication types (oral / IV / topical / etc.). Values populated as a follow-on import from MedCare-rs."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:combo_medication_typ"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ogit:name + ); + ogit:optional-attributes ( + ); + ogit:indexed-attributes ( + ogit:name + ); + ogit:allowed ( + ); +. diff --git a/NTO/Healthcare/enumerations/combo_spez.ttl b/NTO/Healthcare/enumerations/combo_spez.ttl new file mode 100644 index 0000000000..9880edf7d3 --- /dev/null +++ b/NTO/Healthcare/enumerations/combo_spez.ttl @@ -0,0 +1,28 @@ +@prefix ogit: . +@prefix ogit.Healthcare: . +@prefix owl: . +@prefix rdfs: . +@prefix dcterms: . +@prefix xsd: . + +ogit.Healthcare:combo_spez + a rdfs:Class; + rdfs:subClassOf ogit:Enumeration; + rdfs:label "combo_spez"; + dcterms:description "Enumeration of medical specialties / Fachrichtungen used to scope diagnoses, therapies and patient profiles. Values populated as a follow-on import from MedCare-rs."; + dcterms:source "AdaWorldAPI/MedCare-rs/.MYSQL/Struktur.sql:combo_spez"; + dcterms:creator "claude-ogit-bootstrap"; + ogit:scope "NTO"; + ogit:parent ogit:Node; + ogit:mandatory-attributes ( + ogit:id + ogit:name + ); + ogit:optional-attributes ( + ); + ogit:indexed-attributes ( + ogit:name + ); + ogit:allowed ( + ); +. diff --git a/NTO/WorkOrder/entities/Article.ttl b/NTO/WorkOrder/entities/Article.ttl index 294057c936..2e7b3cdaa3 100644 --- a/NTO/WorkOrder/entities/Article.ttl +++ b/NTO/WorkOrder/entities/Article.ttl @@ -21,6 +21,7 @@ ogit.WorkOrder:Article ogit.WorkOrder:ekPreis ogit.WorkOrder:mwstSatz ogit.WorkOrder:lieferant + ogit.WorkOrder:lieferantAnr ogit.WorkOrder:aktiv ); ogit:indexed-attributes ( @@ -75,3 +76,17 @@ ogit.WorkOrder:lieferant dcterms:description "Supplier name (Lieferant) the article is normally sourced from. Free-form string; not a relation to a separate Supplier class in the current source."; dcterms:source "AdaWorldAPI/WoA/models.py:Article.lieferant"; . + +ogit.WorkOrder:lieferantAnr + a rdfs:Property; + rdfs:label "lieferantAnr"; + dcterms:description "Supplier-side article number (Lieferanten-Artikelnummer). Used when reordering: the artikelnr is the tenant-local code, lieferantAnr is the SKU at the supplier."; + dcterms:source "AdaWorldAPI/WoA/models.py:Article.lieferant_anr"; +. + +ogit.WorkOrder:aktiv + a rdfs:Property; + rdfs:label "aktiv"; + dcterms:description "Active flag (aktiv). Boolean; false hides the article from the new-position picker without deleting historical references. Default true."; + dcterms:source "AdaWorldAPI/WoA/models.py:Article.aktiv"; +. diff --git a/NTO/WorkOrder/entities/Customer.ttl b/NTO/WorkOrder/entities/Customer.ttl index b97a827c82..4785542a16 100644 --- a/NTO/WorkOrder/entities/Customer.ttl +++ b/NTO/WorkOrder/entities/Customer.ttl @@ -17,17 +17,25 @@ ogit.WorkOrder:Customer ogit:optional-attributes ( ogit.WorkOrder:kdnr ogit.WorkOrder:firma + ogit.WorkOrder:anrede ogit.WorkOrder:vorname ogit.WorkOrder:nachname + ogit.WorkOrder:mailAnrede ogit:email ogit.WorkOrder:telefon ogit.WorkOrder:strasse + ogit.WorkOrder:adresszusatz ogit.WorkOrder:plz ogit.WorkOrder:ort ogit.WorkOrder:iban ogit.WorkOrder:taxId ogit.WorkOrder:zahlungsziel ogit.WorkOrder:stundensatz + ogit.WorkOrder:fahrtKm + ogit.WorkOrder:fahrtKosten + ogit.WorkOrder:notizen + ogit.WorkOrder:aktiv + ogit.WorkOrder:createdAt ); ogit:indexed-attributes ( ogit:id @@ -124,3 +132,59 @@ ogit.WorkOrder:stundensatz dcterms:description "Hourly rate (Stundensatz) in the tenant's currency, used by labour line items. Float, default 60.0."; dcterms:source "AdaWorldAPI/WoA/models.py:Customer.stundensatz"; . + +ogit.WorkOrder:anrede + a rdfs:Property; + rdfs:label "anrede"; + dcterms:description "Form of address (Anrede). One of: Herr, Frau, Firma. Drives salutation rendering on the document."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.anrede"; +. + +ogit.WorkOrder:mailAnrede + a rdfs:Property; + rdfs:label "mailAnrede"; + dcterms:description "Email salutation override (mail_anrede). Free-text override for the opening line of automated mails (e.g. 'Sehr geehrte Frau Mueller'). When empty, derived from anrede + nachname."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.mail_anrede"; +. + +ogit.WorkOrder:adresszusatz + a rdfs:Property; + rdfs:label "adresszusatz"; + dcterms:description "Address line 2 (Adresszusatz). Optional second address line for c/o, building, suite, etc."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.adresszusatz"; +. + +ogit.WorkOrder:fahrtKm + a rdfs:Property; + rdfs:label "fahrtKm"; + dcterms:description "One-way travel distance in kilometres (Fahrt km). Multiplied by Order.anfahrten and fahrtKosten to compute the trip-cost line item."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.fahrt_km"; +. + +ogit.WorkOrder:fahrtKosten + a rdfs:Property; + rdfs:label "fahrtKosten"; + dcterms:description "Per-kilometre travel cost in the tenant's currency (Fahrt Kosten). Float; default 0.0. Used together with fahrtKm and Order.anfahrten to compute trip-cost line items."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.fahrt_kosten"; +. + +ogit.WorkOrder:notizen + a rdfs:Property; + rdfs:label "notizen"; + dcterms:description "Free-text customer notes (Notizen). Internal-only; not printed on customer-facing documents. Distinct from Order.notizen which is per-order."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.notizen"; +. + +ogit.WorkOrder:aktiv + a rdfs:Property; + rdfs:label "aktiv"; + dcterms:description "Active flag (aktiv). Boolean; false marks the customer as archived. The Python views filter on aktiv = true for the default customer list."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.aktiv"; +. + +ogit.WorkOrder:createdAt + a rdfs:Property; + rdfs:label "createdAt"; + dcterms:description "Customer row creation timestamp. ISO-8601, set on first insert. Mirrors the global ogit:created-at semantically; declared workspace-scoped to keep the projection consistent across WoA entities."; + dcterms:source "AdaWorldAPI/WoA/models.py:Customer.created_at"; +. diff --git a/NTO/WorkOrder/entities/Order.ttl b/NTO/WorkOrder/entities/Order.ttl index 9d86a91edb..0422834d58 100644 --- a/NTO/WorkOrder/entities/Order.ttl +++ b/NTO/WorkOrder/entities/Order.ttl @@ -24,6 +24,20 @@ ogit.WorkOrder:Order ogit.WorkOrder:mwstBetrag ogit.WorkOrder:bruttoSumme ogit.WorkOrder:bezahlt + ogit.WorkOrder:zeitStart + ogit.WorkOrder:zeitEnde + ogit.WorkOrder:anfahrten + ogit.WorkOrder:mitarbeiter + ogit.WorkOrder:pauseStunden + ogit.WorkOrder:zusatzStunden + ogit.WorkOrder:notizen + ogit.WorkOrder:internNotizen + ogit.WorkOrder:bezahltAm + ogit.WorkOrder:mahnstufe + ogit.WorkOrder:letzteMahnung + ogit.WorkOrder:unterschrift + ogit.WorkOrder:createdAt + ogit.WorkOrder:updatedAt ); ogit:indexed-attributes ( ogit:id @@ -95,3 +109,101 @@ ogit.WorkOrder:bezahlt dcterms:description "Payment-received flag. Boolean; true once the order has been settled by the customer."; dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.bezahlt"; . + +ogit.WorkOrder:zeitStart + a rdfs:Property; + rdfs:label "zeitStart"; + dcterms:description "Engagement start (Zeit Start). Begin of the on-site / labour window for this Order; ISO-8601 timestamp."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.zeit_start"; +. + +ogit.WorkOrder:zeitEnde + a rdfs:Property; + rdfs:label "zeitEnde"; + dcterms:description "Engagement end (Zeit Ende). End of the on-site / labour window for this Order; ISO-8601 timestamp."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.zeit_ende"; +. + +ogit.WorkOrder:anfahrten + a rdfs:Property; + rdfs:label "anfahrten"; + dcterms:description "Number of approach trips (Anfahrten) charged to the Order. Integer count used by the trip-cost derivation against Customer.fahrtKm / fahrtKosten."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.anfahrten"; +. + +ogit.WorkOrder:mitarbeiter + a rdfs:Property; + rdfs:label "mitarbeiter"; + dcterms:description "Crew on site (Mitarbeiter). Free-form short label or comma-separated names; the Python source keeps it as a string column rather than a User-relation join because crew composition is often informal."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.mitarbeiter"; +. + +ogit.WorkOrder:pauseStunden + a rdfs:Property; + rdfs:label "pauseStunden"; + dcterms:description "Break time in hours (Pause). Subtracted from (zeitEnde - zeitStart) when the labour total is computed."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.pause_h"; +. + +ogit.WorkOrder:zusatzStunden + a rdfs:Property; + rdfs:label "zusatzStunden"; + dcterms:description "Extra hours (Zusatzstunden) added on top of the (zeitEnde - zeitStart - pauseStunden) computation. Used for after-hours work or punch-list additions."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.zusatz_h"; +. + +ogit.WorkOrder:notizen + a rdfs:Property; + rdfs:label "notizen"; + dcterms:description "Customer-facing notes (Notizen). Free-text block printed on the document below the position list."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.notizen"; +. + +ogit.WorkOrder:internNotizen + a rdfs:Property; + rdfs:label "internNotizen"; + dcterms:description "Internal notes (interne Notizen). Free-text block visible only to staff; never printed on the customer-facing document."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.intern_notizen"; +. + +ogit.WorkOrder:bezahltAm + a rdfs:Property; + rdfs:label "bezahltAm"; + dcterms:description "Payment date (bezahlt am). ISO-8601 date set when the bezahlt flag is flipped from false to true. Drives the close-of-books reconciliation."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.bezahlt_am"; +. + +ogit.WorkOrder:mahnstufe + a rdfs:Property; + rdfs:label "mahnstufe"; + dcterms:description "Dunning level (Mahnstufe). Integer 0-3: 0 = nothing sent, 1-3 = three escalation tiers per the Mahnwesen workflow."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.mahnstufe"; +. + +ogit.WorkOrder:letzteMahnung + a rdfs:Property; + rdfs:label "letzteMahnung"; + dcterms:description "Date of the most recent dunning notice (letzte Mahnung). ISO-8601 date, advanced when mahnstufe is incremented."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.letzte_mahnung"; +. + +ogit.WorkOrder:unterschrift + a rdfs:Property; + rdfs:label "unterschrift"; + dcterms:description "Customer signature blob (Unterschrift). Base64-encoded bitmap captured at on-site checkout; not printed in PDF rendering by default."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.unterschrift"; +. + +ogit.WorkOrder:createdAt + a rdfs:Property; + rdfs:label "createdAt"; + dcterms:description "Order row creation timestamp. ISO-8601, set on first insert. Distinct from datum (the document's effective date)."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.created_at"; +. + +ogit.WorkOrder:updatedAt + a rdfs:Property; + rdfs:label "updatedAt"; + dcterms:description "Order row last-modified timestamp. ISO-8601, advanced on every UPDATE. Distinct from datum and bezahltAm."; + dcterms:source "AdaWorldAPI/WoA/models.py:WorkOrder.updated_at"; +.