diff --git a/crosscutting-concepts/gdpr/gdpr-access-data-flow.puml b/crosscutting-concepts/gdpr/gdpr-access-data-flow.puml
new file mode 100644
index 0000000000000000000000000000000000000000..0ee7b60e1dfef6afef5efcc73047f6c581a96672
--- /dev/null
+++ b/crosscutting-concepts/gdpr/gdpr-access-data-flow.puml
@@ -0,0 +1,211 @@
+@startuml
+
+skinparam BoxPadding 30
+title Workflow for GDPR: Right of Access (Art. 15) triggered by an employee
+actor "GDPR Clerk" as Clerk
+box "Base Module"
+participant "GDPR Overview GUI Tab" as FE
+participant "GDPR Base Service" as BE
+database CentralFile as CF
+end box
+box "All Business Modules"
+participant "Business Module" as BM
+participant "Business Module GUI Tab" as BMFE
+end box
+actor "BM Clerk" as BMClerk
+
+group Create draft "Right of Access" GDPR-Procedure
+Clerk -> FE: Press button to start new draft GDPR-Procedure
+Activate FE
+Clerk <-- FE: Display input for person data
+Clerk -> FE: Fill out person data from id card of citizen
+FE -> BE: POST /gdpr-procedures \nwith type RIGHT_OF_ACCESS \nand identification data
+Activate BE
+BE -> BE: Create GDPR-Procedure \nin status "draft"
+FE <-- BE: Ok
+Deactivate BE
+Clerk <-- FE: GDPR-Procedure succesfully created
+Deactivate FE
+end group
+
+group Add Central File connection
+Clerk -> FE: Edit "Central File connections" for GDPR-Procedure
+Activate FE
+FE -> CF: GET /persons with knowledge factors
+Activate CF
+FE <-- CF: List of persons
+Deactivate CF
+Clerk <-- FE: Display list of possible results
+Clerk -> FE: Choose person from list
+FE -> BE: POST /gdpr-procedures/{id} \nwith referencePerson from Central File
+Activate BE
+BE -> BE: Add referencePerson with id from \nCentral File to GDPR-Procedure
+FE <-- BE: Ok
+Deactivate BE
+Clerk <-- FE: Display connection in GDPR-Procedure
+Deactivate FE
+end group
+
+group Start GDPR-Procedure
+Clerk -> FE: Click button "Start" for GDPR-Procedure
+Activate FE
+FE -> BE: POST /gdpr-procedures/{id}/start-procedure
+Activate BE
+BE -> BE: Update status of GDPR-Procedure \nto "in progress"
+BE -> BM: POST /gdpr-validation-tasks \n(as a broadcast to every BM with the Id of the GDPR-Procedure)
+Activate BM
+BM -> BE: GET /gdpr-procedures/{id}/fileStateIds
+BE -> CF: Query list of Central FileState Ids \nof GDPR-Procedure
+Activate CF
+BE <-- CF: List of Central FileState Ids
+Deactivate CF
+BM <-- BE: List of Central FileState Ids
+BM -> BM: Create new GDRP validation task \nwith reference to Id of GDPR-Procedure
+group opt [If no match with any Procedure in the BM exits]
+BM -> BM: Close GDPR validation task \nand skip further processing
+end group
+BE <-- BM: Ok
+Deactivate BM
+FE <-- BE: Ok (from all BMs)
+Deactivate BE
+Clerk <-- FE: Display that GDPR-Procedure is in progress
+Deactivate FE
+end group
+
+group Display GDPR validation tasks in Business Module
+BMClerk -> BMFE: Check overview page of Business Module \nfor new GDPR validation tasks
+Activate BMFE
+BMFE -> BM: GET /gdpr-validation-tasks/notification-banner
+Activate BM
+BMFE <-- BM: Amount of open validation tasks (with earliest due date)
+Deactivate BM
+BMFE --> BMClerk: Display banner with notification of open validation tasks
+Deactivate BMFE
+end group
+
+group Process request in Business Module
+BMClerk -> BMFE: Click on banner for GDPR validation tasks
+Activate BMFE
+BMFE -> BM: GET /gdpr-validation-tasks?status=OPEN
+Activate BM
+BMFE <-- BM: List of open GDPR validation tasks in Business Module
+Deactivate BM
+BMClerk <-- BMFE: Display list of open GDPR validation tasks
+BMClerk -> BMFE: Select GDPR validation task
+BMFE -> BM: GET /gdpr-validation-tasks/{gdprProcedureId}/business-procedures
+Activate BM
+BM -> BE: GET /gdpr-procedures/{id}/fileStateIds
+Activate BE
+BE -> CF: Query list of Central FileState Ids \nof GDPR-Procedure
+Activate CF
+BE <-- CF: List of Central FileState Ids
+Deactivate CF
+BM <-- BE: List of Central FileState Ids
+Deactivate BE
+BM -> BE: GET /gdpr-procedures/{id}/downloads
+Activate BE
+BM <-- BE: List of currently persisted Download Ids
+Deactivate BE
+BM -> BM: Collect list of Procedures, \nfiltered from list of FileState Ids, \nand align with existing Download .zips
+BMFE <-- BM: GDPR validation task and list of Procedures
+Deactivate BM
+BMClerk <-- BMFE: Display GDPR validation task incl. list of Procedures
+Deactivate BMFE
+
+group loop [For every listed Procedure]
+BMClerk -> BMFE: Click on listed Procedure under consideration
+Activate BMFE
+BMFE --> BM: GET /procedures/{id}
+Activate BM
+BMFE <-- BM: Procedure
+Deactivate BM
+BMClerk <-- BMFE: Display Procedure
+Deactivate BMFE
+BMClerk -> BMClerk: Decide if the Procedure \ncan be published
+group opt [If Procedure shall not be published]
+BMClerk -> BMClerk: Do nothing for this Procedure \nand skip further processing
+end group
+BMClerk -> BMFE: Select that Procedure is publishable
+Activate BMFE
+BMFE --> BM: POST /gdpr-validation-tasks/{gdprProcedureId}/business-procedures/{businessProcedureId}/downloadPackage
+Activate BM
+BM -> BM: Collect documents and create zip of \ncsv and pdfs for the selected Procedure \n(only allow-listed attributes)
+note right: sensitive data, which affects the rights of others, \n(e.g. audio files or manual notes of employees) \nis removed automatically \n\nno personal data is contained in these files, \ni.e. no data of the Central File is included here
+BM -> BE: POST /gdpr-procedures/{id}/downloads
+Activate BE
+BE -> BE: Persist "Download Id" of the zip file \nat the GDPR-Procedure
+BM <-- BE: Ok
+Deactivate BE
+BMFE <-- BM: Ok
+Deactivate BM
+BMClerk <-- BMFE: Display checkmark for this Procedure
+Deactivate BMFE
+end group
+BMClerk -> BMFE: Confirm that all Procedures have been validated
+Activate BMFE
+BMFE --> BM: POST /gdpr-validation-tasks/{gdprProcedureId}/close
+Activate BM
+BM -> BM: Close GDPR validation task
+BMFE <-- BM: Ok
+Deactivate BM
+BMClerk <-- BMFE: Display completed GDPR validation task
+Deactivate BMFE
+end group
+
+group Complete GDPR-Procedure
+Clerk -> FE: Click button "Check Status" for GDPR-Procedure
+Activate FE
+FE -> BE: POST /gdpr-procedures/{id}/refresh-status
+Activate BE
+Deactivate BM
+BE -> BM: GET /gdpr-validation-tasks/{gdprProcedureId} \n(as a broadcast to every BM to check if GDPR validation tasks are done)
+Activate BM
+BE <-- BM: Status "closed"
+Deactivate BM
+group alt [If all BMs are done]
+BE -> CF: Query all information on Central FileStates \nrelated to referenceData in GDPR-Procedure
+Activate CF
+BE<-- CF: FileStates
+Deactivate CF
+BE -> BE: Generate csv and pdf of all FileStates \nrelated to the GDPR-Procedure and  \npersist them as a zip
+note right: These files in particular contain the UUIDs of FileStates \nwhich will be present in the documents created by \nBusiness Modules. \nCitizens have to resolve those Ids by themselves.
+BE -> BE: Update status of GDRP-Procedure to \n"closed"
+else Do nothing
+end group
+FE <-- BE: GDPR-Procedure completed
+Deactivate BE
+Clerk <-- FE: Display results section for GDPR-Procedure
+Deactivate FE
+end group
+
+group Get results of GDPR-Procedure
+FE <- Clerk: View results of GDPR-Procedure
+Activate FE
+FE -> BM: GET /gdpr-validation-tasks/{procedureId}/download-packages \n(as a broadcast to every BM)
+Activate BM
+BM -> CF: Get list of Download Ids for GDPR-Procedure
+Activate CF
+BM <-- CF: List of all Download Ids
+Deactivate CF
+FE <-- BM: List of Download Ids belonging to the Business Module
+Deactivate BM
+FE --> Clerk: Result page with results for each Business Module
+Clerk -> FE: Click "Download" for a single Procedure of an individual Business Module
+FE -> BM: GET /gdpr-validation-tasks/download-packages/{id}
+Activate BM
+FE <-- BM: Persisted zip file
+Deactivate BM
+FE --> Clerk: Download zip file
+Clerk -> FE: Click "Download" for personal data from Central File
+FE -> BE: GET /gdpr-procedures/{id}/central-file-download-package
+Activate BE
+FE <-- BE: Persisted zip file
+Deactivate BE
+FE --> Clerk: Download zip file
+Deactivate FE
+Clerk -> Clerk: Extract and print files
+Clerk -> Clerk: Inform citizen
+end group
+
+
+@enduml
\ No newline at end of file
diff --git a/crosscutting-concepts/gdpr/gdpr.adoc b/crosscutting-concepts/gdpr/gdpr.adoc
index 825ca7e5d200e63ec627a6dfa84ba0005f23e9b4..6c5d17bd438442b0c23617a9965640a464baac65 100644
--- a/crosscutting-concepts/gdpr/gdpr.adoc
+++ b/crosscutting-concepts/gdpr/gdpr.adoc
@@ -154,7 +154,11 @@ triggered by pressing "Start" in the GUI.
 The following sequence diagrams are simplified representations of the flow, which is performed for a GDPR Procedure.
 
 ==== Right of access
-ToDo
+The following sequence diagram shows the use-case, where an individual appears in person in the health department or communicates by post and wants to exercise the right of access.
+[plantuml, gdpr.rectification-flow, svg]
+....
+include::gdpr-access-data-flow.puml[]
+....
 
 ==== Right to rectification
 The following sequence diagram shows the use-case, where an individual appears in person in the health department or communicates by post and wants to exercise the right to rectification.
diff --git a/open-api/base/openApiSpec.yaml b/open-api/base/openApiSpec.yaml
index 07d8ba1f0e10c518490ef648b8542037a4fcf00c..fe3bd6280e43aca9afa006cd8e43b679c7cccbd1 100644
--- a/open-api/base/openApiSpec.yaml
+++ b/open-api/base/openApiSpec.yaml
@@ -6,6 +6,35 @@ info:
 servers:
 - url: http://localhost:8080
 paths:
+  /bundid-person-link:
+    post:
+      operationId: createBundIdPersonLink
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: "#/components/schemas/AddBundIdPersonLinkRequest"
+        required: true
+      responses:
+        "200":
+          description: OK
+      summary: Establish a link between a BundId user and a person
+      tags:
+      - BundIdPersonLink
+  /bundid-person-link/self/person:
+    get:
+      operationId: getReferencePersonLinkedToBundIdSelfUser
+      responses:
+        "200":
+          content:
+            '*/*':
+              schema:
+                $ref: "#/components/schemas/GetReferencePersonResponse"
+          description: OK
+      summary: Get the reference person linked to the BUNDID user which is currently
+        active
+      tags:
+      - BundIdPersonLink
   /calendars:
     get:
       operationId: getCalendars
@@ -1437,6 +1466,28 @@ paths:
       summary: Cancel the GDPR procedure
       tags:
       - GdprProcedure
+  /gdpr-procedures/{id}/central-file-download-package:
+    get:
+      operationId: getCentralFileDownloadPackage
+      parameters:
+      - in: path
+        name: id
+        required: true
+        schema:
+          type: string
+          format: uuid
+      responses:
+        "200":
+          content:
+            '*/*':
+              schema:
+                type: string
+                format: binary
+          description: OK
+      summary: Get Gdpr Download Package of central files linked to given Gdpr Procedure
+        Id
+      tags:
+      - GdprProcedure
   /gdpr-procedures/{id}/close-procedure:
     post:
       operationId: closeProcedure
@@ -3152,6 +3203,24 @@ paths:
           description: OK
       tags:
       - TestHelper
+  /test-helper/idp-user/{nameId}:
+    get:
+      operationId: getIdpUser
+      parameters:
+      - in: path
+        name: nameId
+        required: true
+        schema:
+          type: string
+      responses:
+        "200":
+          content:
+            '*/*':
+              schema:
+                $ref: "#/components/schemas/CitizenUser"
+          description: OK
+      tags:
+      - TestHelper
   /test-helper/keycloak/reset:
     post:
       operationId: resetKeycloak
@@ -3939,6 +4008,23 @@ components:
           minimum: 1
       required:
       - barrierId
+    AddBundIdPersonLinkRequest:
+      type: object
+      description: Request used for establishing a link between a BundId user and
+        a reference person
+      properties:
+        bundId:
+          type: string
+          description: The id of the bundId user
+          example: To be added
+        referencePersonId:
+          type: string
+          format: uuid
+          description: The (external) id of the reference person
+          example: be9831d4-dc25-48d8-9bfe-4c0b54bfb2c1
+      required:
+      - bundId
+      - referencePersonId
     AddCentralFileIdToGdprProcedureRequest:
       type: object
       properties:
@@ -4517,6 +4603,7 @@ components:
       - GDPR
       - GDPR_ONLINE_PORTAL
       - MUK_FACILITY_LINK
+      - BUNDID_PERSON_LINK
     BlockingEventsOfCalendar:
       type: object
       properties:
@@ -4633,6 +4720,25 @@ components:
       required:
       - accessCode
       - userId
+    CitizenUser:
+      type: object
+      properties:
+        attributes:
+          type: object
+          additionalProperties:
+            type: array
+            items:
+              type: string
+        email:
+          type: string
+        userId:
+          type: string
+          format: uuid
+        username:
+          type: string
+      required:
+      - userId
+      - username
     CitizenUserRole:
       type: string
       enum:
@@ -9058,6 +9164,7 @@ components:
       - BASE_GDPR_PROCEDURE_READ
       - BASE_GDPR_PROCEDURE_WRITE
       - BASE_MUK_FACILITY_LINK_WRITE
+      - BASE_BUNDID_PERSON_LINK_WRITE
       - BASE_GLOBAL_CALENDARS_WRITE
       - BASE_CALENDAR_BUSINESS_EVENTS_WRITE
       - BASE_PROCEDURES_READ
diff --git a/open-api/inspection/openApiSpec.yaml b/open-api/inspection/openApiSpec.yaml
index cdb39e6c7cc0a07dbae0b40ca0ff0b2db334d932..0ee8d9f6c3a1ca6ec91f6f2ef767ac49d8220868 100644
--- a/open-api/inspection/openApiSpec.yaml
+++ b/open-api/inspection/openApiSpec.yaml
@@ -2861,6 +2861,11 @@ paths:
       - Procedure
   /procedures/{id}/files:
     get:
+      description: |
+        This returns all relevant (highest version per keydocument type and non-deleted) files sorted by descending creation date.
+        That is:
+         * if an progress entry has a keydocument type set, then its files are only returned if it also has the highest keydocument version of the respective key document type.
+         * if an progress entry does not have a keydocument type, then its files are always returned.
       operationId: getProcedureFileDetails
       parameters:
       - in: path
@@ -2876,7 +2881,7 @@ paths:
               schema:
                 $ref: "#/components/schemas/GetProcedureFileDetailsResponse"
           description: OK
-      summary: Get all file details for a procedure
+      summary: Get relevant procedure files
       tags:
       - Procedure
   /procedures/{procedureId}/progress-entries:
diff --git a/open-api/measles-protection/openApiSpec.yaml b/open-api/measles-protection/openApiSpec.yaml
index 11b865c1398466bbd80aed39446d94a589993013..545e43c99241d923ae56e2ff79b914e69e97f0c0 100644
--- a/open-api/measles-protection/openApiSpec.yaml
+++ b/open-api/measles-protection/openApiSpec.yaml
@@ -1244,6 +1244,11 @@ paths:
       - Procedure
   /procedures/{id}/files:
     get:
+      description: |
+        This returns all relevant (highest version per keydocument type and non-deleted) files sorted by descending creation date.
+        That is:
+         * if an progress entry has a keydocument type set, then its files are only returned if it also has the highest keydocument version of the respective key document type.
+         * if an progress entry does not have a keydocument type, then its files are always returned.
       operationId: getProcedureFileDetails
       parameters:
       - in: path
@@ -1259,7 +1264,7 @@ paths:
               schema:
                 $ref: "#/components/schemas/GetProcedureFileDetailsResponse"
           description: OK
-      summary: Get all file details for a procedure
+      summary: Get relevant procedure files
       tags:
       - Procedure
   /procedures/{procedureId}/progress-entries:
diff --git a/open-api/procedure/openApiSpec.yaml b/open-api/procedure/openApiSpec.yaml
index f7ca6b586c63deec5249452c7886dc8c623df5f6..5c57e89067724dd724634ecb77b31cfddb7a9130 100644
--- a/open-api/procedure/openApiSpec.yaml
+++ b/open-api/procedure/openApiSpec.yaml
@@ -1058,6 +1058,11 @@ paths:
       - Procedure
   /procedures/{id}/files:
     get:
+      description: |
+        This returns all relevant (highest version per keydocument type and non-deleted) files sorted by descending creation date.
+        That is:
+         * if an progress entry has a keydocument type set, then its files are only returned if it also has the highest keydocument version of the respective key document type.
+         * if an progress entry does not have a keydocument type, then its files are always returned.
       operationId: getProcedureFileDetails
       parameters:
       - in: path
@@ -1073,7 +1078,7 @@ paths:
               schema:
                 $ref: "#/components/schemas/GetProcedureFileDetailsResponse"
           description: OK
-      summary: Get all file details for a procedure
+      summary: Get relevant procedure files
       tags:
       - Procedure
   /procedures/{procedureId}/progress-entries:
diff --git a/open-api/school-entry/openApiSpec.yaml b/open-api/school-entry/openApiSpec.yaml
index 901725bab1c2e0e7a40be7e42a3c1af7d8d39491..c093e95c1645e33da610ae5ce840d55ade95bb16 100644
--- a/open-api/school-entry/openApiSpec.yaml
+++ b/open-api/school-entry/openApiSpec.yaml
@@ -1505,6 +1505,11 @@ paths:
       - Procedure
   /procedures/{id}/files:
     get:
+      description: |
+        This returns all relevant (highest version per keydocument type and non-deleted) files sorted by descending creation date.
+        That is:
+         * if an progress entry has a keydocument type set, then its files are only returned if it also has the highest keydocument version of the respective key document type.
+         * if an progress entry does not have a keydocument type, then its files are always returned.
       operationId: getProcedureFileDetails
       parameters:
       - in: path
@@ -1520,7 +1525,7 @@ paths:
               schema:
                 $ref: "#/components/schemas/GetProcedureFileDetailsResponse"
           description: OK
-      summary: Get all file details for a procedure
+      summary: Get relevant procedure files
       tags:
       - Procedure
   /procedures/{procedureId}/progress-entries:
diff --git a/open-api/sd/openApiSpec.yaml b/open-api/sd/openApiSpec.yaml
index 8ed4f8987cd596b08e3de3ed5afcf052e0adcd6c..56f1053c4a8a55aabbec6cdd171e3c5bacb0feae 100644
--- a/open-api/sd/openApiSpec.yaml
+++ b/open-api/sd/openApiSpec.yaml
@@ -616,6 +616,32 @@ paths:
         \ by type, orgUnitType and orgUnitId, if needed"
       tags:
       - ServiceDirectory
+  /api/actors/activeOrgUnitActors:
+    get:
+      operationId: getActiveOrgUnitActors
+      parameters:
+      - in: header
+        name: If-None-Match
+        required: false
+        schema:
+          type: string
+      - in: query
+        name: type
+        required: false
+        schema:
+          $ref: "#/components/schemas/ActorType"
+      responses:
+        "200":
+          content:
+            '*/*':
+              schema:
+                $ref: "#/components/schemas/GetActiveActorsResponse"
+          description: Returns an ResponseEntity object containing the list of active
+            actors in the body and the ETag value in the response headers
+      summary: "Get the active actors of the calling actor's org-unit from the service\
+        \ directory. result can be filtered by type, if needed"
+      tags:
+      - ServiceDirectory
   /api/actors/metadata/self:
     put:
       operationId: updateActorMetadata
diff --git a/open-api/statistic/openApiSpec.yaml b/open-api/statistic/openApiSpec.yaml
index 25992e2132b3783448f04bd429ac72014fcadb6c..5bc6ac191f674c1081532e7791a2705e2df8c6d4 100644
--- a/open-api/statistic/openApiSpec.yaml
+++ b/open-api/statistic/openApiSpec.yaml
@@ -1057,9 +1057,20 @@ paths:
           description: OK
       tags:
       - TestHelper
-  /test-helper/populate-create-evaluation:
+  /test-helper/populate-create-evaluation/{businessModuleName}/{anonymized}:
     post:
       operationId: createEvaluation
+      parameters:
+      - in: path
+        name: businessModuleName
+        required: true
+        schema:
+          type: string
+      - in: path
+        name: anonymized
+        required: true
+        schema:
+          type: boolean
       responses:
         "200":
           content:
@@ -1611,18 +1622,24 @@ components:
             $ref: "#/components/schemas/BusinessDataSourceAttribute"
         businessModuleName:
           type: string
+        canBeAnonymized:
+          type: boolean
         id:
           type: string
           format: uuid
         name:
           type: string
+        sensitivity:
+          $ref: "#/components/schemas/DataSourceSensitivity"
         withoutAnonymizationAllowed:
           type: boolean
       required:
       - attributes
       - businessModuleName
+      - canBeAnonymized
       - id
       - name
+      - sensitivity
       - withoutAnonymizationAllowed
     BarChartConfiguration:
       type: object
@@ -1956,6 +1973,12 @@ components:
             type: object
       required:
       - values
+    DataSensitivity:
+      type: string
+      enum:
+      - ANONYMOUS
+      - INTERNAL_USAGE
+      - SENSITIVE
     DataSource:
       type: object
       properties:
@@ -1974,6 +1997,12 @@ components:
       - attributeCodes
       - businessModuleName
       - id
+    DataSourceSensitivity:
+      type: string
+      enum:
+      - SENSITIVE
+      - INTERNAL_USAGE
+      - ANONYMOUS
     DataSourceWithAttributeNames:
       type: object
       properties:
@@ -2174,11 +2203,11 @@ components:
     EvaluationInfo:
       type: object
       properties:
-        anonymized:
-          type: boolean
         createdAt:
           type: string
           format: date-time
+        dataSensitivity:
+          $ref: "#/components/schemas/DataSensitivity"
         dataSourceNames:
           type: array
           items:
@@ -2204,8 +2233,8 @@ components:
           type: string
           format: uuid
       required:
-      - anonymized
       - createdAt
+      - dataSensitivity
       - dataSourceNames
       - id
       - name
@@ -2255,17 +2284,17 @@ components:
           format: date-time
         name:
           type: string
+        templateSensitivityInfo:
+          $ref: "#/components/schemas/TemplateSensitivityInfo"
         user:
           $ref: "#/components/schemas/User"
-        withoutAnonymizationAllowed:
-          type: boolean
       required:
       - analysisInfos
       - createdAt
       - dataSources
       - id
       - name
-      - withoutAnonymizationAllowed
+      - templateSensitivityInfo
     EvaluationTemplateDetailsFromRepository:
       type: object
       properties:
@@ -2315,6 +2344,8 @@ components:
           format: date-time
         name:
           type: string
+        templateSensitivityInfo:
+          $ref: "#/components/schemas/TemplateSensitivityInfo"
         userId:
           type: string
           format: uuid
@@ -2324,6 +2355,7 @@ components:
       - dataSourceNames
       - id
       - name
+      - templateSensitivityInfo
       - userId
     EvaluationTemplateSortKey:
       type: string
@@ -2571,6 +2603,18 @@ components:
       - evaluationInfo
       - tableColumnHeaders
       - totalNumberOfElements
+    GetEvaluationTemplatesFilterOptions:
+      type: object
+      properties:
+        createdAt:
+          $ref: "#/components/schemas/DateSpan"
+        dataSourceIds:
+          type: array
+          items:
+            type: string
+            format: uuid
+        name:
+          type: string
     GetEvaluationTemplatesFromRepositoryResponse:
       type: object
       properties:
@@ -2583,6 +2627,8 @@ components:
     GetEvaluationTemplatesRequest:
       type: object
       properties:
+        filterOptions:
+          $ref: "#/components/schemas/GetEvaluationTemplatesFilterOptions"
         page:
           type: integer
           format: int32
@@ -2706,6 +2752,8 @@ components:
           type: array
           items:
             $ref: "#/components/schemas/Analysis"
+        dataSensitivity:
+          $ref: "#/components/schemas/DataSensitivity"
         description:
           type: string
         executionDate:
@@ -2749,6 +2797,7 @@ components:
           $ref: "#/components/schemas/User"
       required:
       - analyses
+      - dataSensitivity
       - executionDate
       - id
       - name
@@ -3189,6 +3238,8 @@ components:
     ReportInfo:
       type: object
       properties:
+        dataSensitivity:
+          $ref: "#/components/schemas/DataSensitivity"
         executionDate:
           type: string
           format: date
@@ -3212,6 +3263,7 @@ components:
           format: int64
           minimum: 0
       required:
+      - dataSensitivity
       - executionDate
       - id
       - name
@@ -3380,7 +3432,6 @@ components:
     StatisticsFeature:
       type: string
       enum:
-      - REPORTS
       - FAKE_ANONYMIZATION
     TableColumnFilterParameter:
       type: object
@@ -3419,6 +3470,18 @@ components:
       - dataSourceId
       - dataSourceName
       - displayName
+    TemplateSensitivityInfo:
+      type: object
+      properties:
+        canBeAnonymized:
+          type: boolean
+        sensitivity:
+          $ref: "#/components/schemas/DataSourceSensitivity"
+        withoutAnonymizationAllowed:
+          type: boolean
+      required:
+      - canBeAnonymized
+      - withoutAnonymizationAllowed
     TestHelperClockSetRequest:
       type: object
       properties:
diff --git a/open-api/travel-medicine/openApiSpec.yaml b/open-api/travel-medicine/openApiSpec.yaml
index eaa2e3949df45bcd42f0004208abcbe3f841ad9b..584653b4c253ddc5163478d13dac1292af3961c4 100644
--- a/open-api/travel-medicine/openApiSpec.yaml
+++ b/open-api/travel-medicine/openApiSpec.yaml
@@ -2015,6 +2015,11 @@ paths:
       - Procedure
   /procedures/{id}/files:
     get:
+      description: |
+        This returns all relevant (highest version per keydocument type and non-deleted) files sorted by descending creation date.
+        That is:
+         * if an progress entry has a keydocument type set, then its files are only returned if it also has the highest keydocument version of the respective key document type.
+         * if an progress entry does not have a keydocument type, then its files are always returned.
       operationId: getProcedureFileDetails
       parameters:
       - in: path
@@ -2030,7 +2035,7 @@ paths:
               schema:
                 $ref: "#/components/schemas/GetProcedureFileDetailsResponse"
           description: OK
-      summary: Get all file details for a procedure
+      summary: Get relevant procedure files
       tags:
       - Procedure
   /procedures/{procedureId}/progress-entries:
@@ -6487,8 +6492,12 @@ components:
           type: string
           maxLength: 4000
           minLength: 0
+        procedureId:
+          type: string
+          format: uuid
       required:
       - medicalHistoryContent
+      - procedureId
     PatchMedicalHistoryTemplateFlagRequest:
       type: object
       properties:
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/domain-model.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/domain-model.adoc
index c23273ddfe494d5dfc48201e41401748b8f90ffe..f296beaaf05dc5c34fe397768064d9c4df14d1b7 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/domain-model.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/domain-model.adoc
@@ -31,26 +31,31 @@ include::../../uml/domain/sti-protection-domain-model.puml[]
 include::entity-appointment.adoc[]
 include::entity-appointment-block.adoc[]
 include::entity-appointment-block-group.adoc[]
+include::entity-appointment-history-entry.adoc[]
 include::entity-examination.adoc[]
 include::entity-medical-history.adoc[]
 include::entity-person.adoc[]
+include::entity-prevention.adoc[]
 include::entity-previous-illness.adoc[]
+include::entity-rapid-test-data.adoc[]
+include::entity-rapid-test-examination.adoc[]
 include::entity-risk-contact.adoc[]
 include::entity-risk-factor.adoc[]
 include::entity-sex-work-medical-history.adoc[]
+include::entity-sex-work-risk-contact.adoc[]
 include::entity-sti-consultation-medical-history.adoc[]
 include::entity-sti-protection-procedure.adoc[]
 include::entity-user-defined-appointment.adoc[]
-include::entity-vaccination.adoc[]
 include::entity-waiting-room.adoc[]
+include::enum-appointment-status.adoc[]
 include::enum-concern.adoc[]
-include::enum-disease-type.adoc[]
 include::enum-gender.adoc[]
 include::enum-partner-risk-factor.adoc[]
 include::enum-procedure-status.adoc[]
 include::enum-protection-method.adoc[]
 include::enum-relationship-model.adoc[]
 include::enum-safe-sex-practice.adoc[]
+include::enum-sex-work-location.adoc[]
 include::enum-sexual-orientation.adoc[]
-include::enum-waiting-status.adoc[]
-include::enumeration-risk-activity-type.adoc[]
\ No newline at end of file
+include::enum-vaccination.adoc[]
+include::enum-waiting-status.adoc[]
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entitiy-hepatitis-laboratory-test.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entitiy-hepatitis-laboratory-test.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..154e38ef5dfc299152ccbea81bc826220301c905
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entitiy-hepatitis-laboratory-test.adoc
@@ -0,0 +1,36 @@
+=== Entity HepatitisLaboratoryTest
+
+'HepatitisLaboratoryTest' is an entity used in the context of
+'LaboratoryTestExamination' to document test results for Hepatitis A and
+Hepatitis B.
+
+.Attributes of `HepatitisLaboratoryTest`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|infection
+|[0..1]
+|Boolean
+|Indicates whether the test is conducted in the context of an infection.
+
+|vaccineTitre
+|[0..1]
+|Boolean
+|Indicates whether the test is conducted in the context of a vaccination.
+
+|value
+|[0..1]
+|String
+|Records a specific measurement or value obtained from the laboratory test
+results.
+
+|remark
+|[0..1]
+|String
+|Provides additional comments related to the corresponding test.
+
+|===
+
+
+
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-appointment-block.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-appointment-block.adoc
index 156255e3f7a0e2e31443615d45e056ee48114d58..774bca7e0fa7c2c96ffb469fd2c9cb987b5d366c 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-appointment-block.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-appointment-block.adoc
@@ -1,4 +1,4 @@
-=== Entity AppointmentBlock
+=== Entity AppointmentBlocks
 `AppointmentBlocks` are designated time periods scheduled by public health
 department employees for performing procedures and related tasks.
 
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-appointment-history-entry.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-appointment-history-entry.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..316144ea17bcb3269ccd8b606bbf892483f5a9d1
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-appointment-history-entry.adoc
@@ -0,0 +1,26 @@
+=== Entity AppointmentHistoryEntry
+`AppointmentHistoryEntry` is used to document past and upcoming 'Appointments'
+
+.Attributes of `AppointmentHistoryEntry`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|appointmentType
+|[0..1]
+|AppointmentType
+|Specifies the type of appointments as defined in `AppointmentType`.
+
+|appointmentStart
+|[0..1]
+|Instant
+|Specifies the start of the 'Appointment'.
+
+|appointmentStatus
+|[0..1]
+|AppointmentStatus
+|Documents the status of the appointment.
+
+|===
+
+
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-examination.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-examination.adoc
index fab29ae1a4d6f0864cda1066143dad33f4b2b542..d5a1c1b0ede03f7d57d760db9e44dd43f405631e 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-examination.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-examination.adoc
@@ -7,6 +7,41 @@ Contains information about any examinations the patient previously undergone.
 |===
 |Attribute | Card. | Type | Description
 
+|hepA
+|[0..1]
+|Boolean
+|Indicating if the patient has been examined for Hepatitis A.
+
+|hepB
+|[0..1]
+|Boolean
+|Indicating if the patient has been examined for Hepatitis B.
+
+|hepC
+|[0..1]
+|Boolean
+|Indicating if the patient has been examined for Hepatitis C.
+
+|hiv
+|[0..1]
+|Boolean
+|Indicating if the patient has been examined for HIV.
+
+|syphilis
+|[0..1]
+|Boolean
+|Indicating if the patient has been examined for Syphilis.
+
+|gonorrhea
+|[0..1]
+|Boolean
+|Indicating if the patient has been examined for Gonorrhea.
+
+|chlamydia
+|[0..1]
+|Boolean
+|Indicating if the patient has been examined for Chlamydia.
+
 |hepA
 |[1..1]
 |LocalDate
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test-examination.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test-examination.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..2eb439642da90a97a6e2fd063279fa1cff0813eb
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test-examination.adoc
@@ -0,0 +1,163 @@
+=== Entity LaboratoryTestExamination
+
+'LaboratoryTestExamination' is an entity used to document the initial request
+which laboratory tests should be performed and to record the corresponding
+results.
+
+.Attributes of `LaboratoryTestExamination`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|sampleBarcode
+|[0..1]
+|[String]
+|Specifies a barcode for tracking the results with the external laboratory.
+
+|generalRemarks
+|[0..1]
+|[String]
+|Provides general comments related to the laboratory tests.
+
+|testsConducted
+|[0..1]
+|Boolean
+|Indicates if the tests were conducted and is used for the `LaboryStatus`.
+
+|testsPayed
+|[0..1]
+|Boolean
+|Indicates whether the patient has paid for the tests.
+
+|hivTestRequested
+|[0..1]
+|Boolean
+|Specifies whether an HIV laboratory test is requested.
+
+|syphilisTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Syphilis laboratory test is requested.
+
+|hepATestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Hepatitis A laboratory test is requested.
+
+|hepBTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Hepatitis B laboratory test is requested.
+
+|hepCTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Hepatitis C laboratory test is requested.
+
+|chlamydiaTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Chlamydia laboratory test is requested.
+
+|gonorrheaTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Gonorrhea laboratory test is requested.
+
+|mycoplasmaTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Mycoplasma laboratory test is requested.
+
+|cancerScreeningTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Cancer Screening laboratory test is requested.
+
+|hpvTestRequested
+|[0..1]
+|Boolean
+|Specifies whether an HPV laboratory test is requested.
+
+|mpoxTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a Mpox laboratory test is requested.
+
+|otherTestRequested
+|[0..1]
+|Boolean
+|Specifies whether another additional laboratory test is requested.
+
+|hivTestData
+|[0..1]
+|LaboratoryTest
+|Records the results of the HIV laboratory test.
+
+|syphilisTestData
+|[0..1]
+|LaboratoryTest
+|Records the results of the Syphilis laboratory test.
+
+|hadSyphilis
+|[0..1]
+|LaboratoryTest
+|Indicates if the patient was previously infected with Syphilis.
+
+|hepATestData
+|[0..1]
+|HepatitisLaboratoryTest
+|Records the results of the Hepatitis A laboratory test.
+
+|hepBTestData
+|[0..1]
+|HepatitisLaboratoryTest
+|Records the results of the Hepatitis B laboratory test.
+
+|hepCTestData
+|[0..1]
+|LaboratoryTest
+|Records the results of the Hepatitis C laboratory test.
+
+|chlamydiaTestSamples
+|[0..1]
+|LaboratoryTest
+|Records the results of the Chlamydia laboratory test.
+
+|gonorrhoeaTestSamples
+|[0..1]
+|LaboratoryTest
+|Records the results of the Gonorrhoea laboratory test.
+
+|mycoplasmaTestSamples
+|[0..1]
+|LaboratoryTest
+|Records the results of the Mycoplasma laboratory test.
+
+|cancerScreeningTestData
+|[0..1]
+|LaboratoryTest
+|Records the results of the Cancer Screening laboratory test.
+
+|hpvTestData
+|[0..1]
+|LaboratoryTest
+|Records the results of the HPV laboratory test.
+
+|mpoxTestData
+|[0..1]
+|LaboratoryTest
+|Records the results of the Mpox laboratory test.
+
+|otherTestName
+|[0..1]
+|LaboratoryTest
+|Records the name of the additional laboratory test.
+
+|otherTestData
+|[0..1]
+|LaboratoryTest
+|Records the results of the additional laboratory test.
+
+|===
+
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test-samples.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test-samples.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..45b667db6d5a89108b4d2f0643d6e8d57005fe2c
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test-samples.adoc
@@ -0,0 +1,42 @@
+=== Entity LaboratoryTestSamples
+
+'LaboratoryTestSamples' is an entity used in the context of
+'LaboratoryTestExamination' where different types of samples or multiple
+samples are required for specific tests.
+
+.Attributes of `LaboratoryTestSamples`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|oralSampleRequested
+|[0..1]
+|Boolean
+|Specifies whether an oral sample is requested.
+
+|oralSampleData
+|[0..1]
+|LaboratoryTest
+|Records the results of the oral sample test.
+
+|urethralSampleRequested
+|[0..1]
+|Boolean
+|Specifies whether an urethral sample is requested.
+
+|urethralSampleData
+|[0..1]
+|LaboratoryTest
+|Records the results of the urethral sample test.
+
+|analSampleRequested
+|[0..1]
+|Boolean
+|Specifies whether an anal sample is requested.
+
+|analSampleData
+|[0..1]
+|LaboratoryTest
+|Records the results of the anal sample test.
+
+|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..37e1a118eb8bf32342ec5a3f8ff1333418eebf0f
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-laboratory-test.adoc
@@ -0,0 +1,26 @@
+=== Entity LaboratoryTest
+
+'LaboratoryTest' is an entity used in the context of 'LaboratoryTestExamination'.
+
+.Attributes of `LaboratoryTest`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|result
+|[0..1]
+|Boolean
+|Indicates the outcome of the laboratory test result.
+
+|value
+|[0..1]
+|String
+|Records a specific measurement or value obtained from the laboratory test
+results.
+
+|remark
+|[0..1]
+|String
+|Provides additional comments related to the corresponding test.
+
+|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-medical-history.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-medical-history.adoc
index 39b111559539d656e30f093a4e44a4a5a2be3e40..f13ed866776f8e6614b1594b8a3bbeab9bb61b74 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-medical-history.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-medical-history.adoc
@@ -19,7 +19,7 @@ their medical background.
 |String
 |Details the symptoms the patient is currently experiencing.
 
-|contactToClarifyDuration
+|contactToClarifyDate
 |[0..1]
 |LocalDate
 |Records the date of the contact the patients wished to discuss or clarify.
@@ -45,6 +45,11 @@ their medical background.
 |Details information regarding the patient's contact with potentially risky
 partners.
 
+|prevention
+|[0..1]
+|Prevention
+|Details information regarding the patient's prevention strategies and measures.
+
 |riskFactors
 |[0..1]
 |RiskFactor
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-person.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-person.adoc
index c31c03aa4d8a50c5405572ad9edc2eb04c6571d0..eb7c317069fefe5c7e3fe41bb45c2dd690452b08 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-person.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-person.adoc
@@ -9,6 +9,11 @@ based solely on this data is nearly impossible.
 |===
 |Attribute | Card. | Type | Description
 
+|id
+|[1..1]
+|UUID
+|A unique identifier for the person.
+
 |countryOfBirth
 |[0..1]
 |CountryCode
@@ -29,4 +34,10 @@ based solely on this data is nearly impossible.
 |Integer
 |Indicates the year of birth of the person.
 
+|accessCode
+|[1..1]
+|String
+|Unique code for patient identification and login to the online portal, valid
+until the procedure is closed.
+
 |===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-prevention.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-prevention.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..c59a0dd94aeb7b37d7d02bb051ee9c61d8c68cc6
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-prevention.adoc
@@ -0,0 +1,31 @@
+=== Entity Prevention
+
+Details information regarding the patient's prevention strategies and measures.
+
+.Attributes of `Prevention`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|vaccinations
+|[0..1]
+|Vaccination
+|Provides information on vaccinations the patient has received.
+
+|safeSexPractice
+|[0..1]
+|SafeSexPractice
+|Indicates whether the patient engages in practices considered safe sex.
+
+|protectionMethodsUsed
+|[0..1]
+|ProtectionMethodsUsed
+|Lists the methods of protection the patient has used during sexual activity.
+
+|infoAboutPrepDesired
+|[0..1]
+|Boolean
+|Indicates whether the patient wishes to receive information about PrEP.
+
+|===
+
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-previous-illness.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-previous-illness.adoc
index 42528584c939c0ccfbac0f28e5b2b72cce2f1dbe..3bd395cf0f91a4e5ca815abfca7285125274914d 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-previous-illness.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-previous-illness.adoc
@@ -9,42 +9,47 @@ Lists any past illnesses the patient has had.
 
 |hepA
 |[1..1]
-|LocalDate
-|Date indicating when the patient was diagnosed with or experienced Hepatitis A.
+|Boolean
+|Indicates if the patient was diagnosed with or experienced Hepatitis A.
 
 |hepB
 |[1..1]
-|LocalDate
-|Date indicating when the patient was diagnosed with or experienced Hepatitis B.
+|Boolean
+|Indicates if the patient was diagnosed with or experienced Hepatitis B.
 
 |hepC
 |[1..1]
-|LocalDate
-|Date indicating when the patient was diagnosed with or experienced Hepatitis C.
+|Boolean
+|Indicates if the patient was diagnosed with or experienced Hepatitis C.
 
 |hiv
-|[1..1]
-|LocalDate
-|Date indicating when the patient was diagnosed with or experienced HIV.
+|[0..1]
+|Boolean
+|Indicates if the patient was diagnosed with or experienced HIV.
 
 |syphilis
-|[1..1]
-|LocalDate
-|Date indicating when the patient was diagnosed with or experienced Syphilis.
+|[0..1]
+|Boolean
+|Indicates if the patient was diagnosed with or experienced Syphilis.
 
 |gonorrhea
-|[1..1]
-|LocalDate
-|Date indicating when the patient was diagnosed with or experienced Gonorrhea.
+|[0..1]
+|Boolean
+|Indicates if the patient was diagnosed with or experienced Gonorrhea.
 
 |chlamydia
-|[1..1]
-|LocalDate
-|Date indicating when the patient was diagnosed with or experienced Chlamydia.
+|[0..1]
+|Boolean
+|Indicates if the patient was diagnosed with or experienced Chlamydia.
 
-|otherPreviousIllnesses
-|[1..1]
+|other
+|[0..1]
+|Boolean
+|Indicates if the patient was diagnosed with another not listed illness.
+
+|otherData
+|[0..1]
 |String
-|Indicating if the patient was diagnosed with another not listed illness.
+|Holds additional info regarding the other illness.
 
 |===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-rapid-test-data.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-rapid-test-data.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..8700d9c91d968ef170ad8d5559920215c6a73e1e
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-rapid-test-data.adoc
@@ -0,0 +1,21 @@
+=== Entity RapidTestData
+
+'RapidTestData' is an entity used in the context of 'RapidTestExamination'.
+
+.Attributes of `RapidTestData`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|number
+|[0..1]
+|String
+|Represents the test number which, can be numerical, alphanumerical or
+alphabetical.
+
+|result
+|[0..1]
+|Boolean
+|Indicates the outcome of the rapid test result.
+
+|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-rapid-test-examination.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-rapid-test-examination.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..ec2fd4a87463acf4144ed246e3133f3d0236379c
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-rapid-test-examination.adoc
@@ -0,0 +1,91 @@
+=== Entity RapidTestExamination
+
+'RapidTestExamination' is an entity used to document the initial request which
+rapid tests should be performed and to record the corresponding results.
+
+.Attributes of `RapidTestExamination`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|generalComments
+|[0..1]
+|String
+|Provides general comments related to the rapid tests.
+
+|testsPayed
+|[0..1]
+|Boolean
+|Indicates whether the patient has paid for the tests.
+
+|hivRequested
+|[0..1]
+|Boolean
+|Specifies whether an HIV rapid test is requested.
+
+|syphilisRequested
+|[0..1]
+|Boolean
+|Specifies whether a Syphilis rapid test is requested.
+
+|pregnancyTestRequested
+|[0..1]
+|Boolean
+|Specifies whether a pregnancy test is requested.
+
+|ultrasoundRequested
+|[0..1]
+|Boolean
+|Specifies whether an ultrasound examination is requested.
+
+|bloodPressureRequested
+|[0..1]
+|Boolean
+|Specifies whether blood pressure measurement is requested.
+
+|pulseRequested
+|[0..1]
+|Boolean
+|Specifies whether pulse measurement is requested.
+
+|urinalysisRequested
+|[0..1]
+|Boolean
+|Specifies whether an urinalysis is requested.
+
+|hivData
+|[0..1]
+|RapidTestData
+|Records the results of the HIV rapid test.
+
+|syphilisData
+|[0..1]
+|RapidTestData
+|Records the results of the Syphilis rapid test.
+
+|pregnancyTestData
+|[0..1]
+|RapidTestData
+|Records the results of the pregnancy test.
+
+|ultrasoundData
+|[0..1]
+|String
+|Records the results of the ultrasound examination.
+
+|bloodPressureData
+|[0..1]
+|String
+|Records the measured blood pressure values.
+
+|pulseData
+|[0..1]
+|String
+|Is used to document the measured pulse.
+
+|urinalysisData
+|[0..1]
+|String
+|Is used to document the urinalysis information.
+
+|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-risk-factor.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-risk-factor.adoc
index 62c3f149a1a0d1d254987cf89bd797e61011ed85..e03446f3957e4775694f8b21a9476a990cd46689 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-risk-factor.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-risk-factor.adoc
@@ -8,45 +8,49 @@ risk factors.
 |===
 |Attribute | Card. | Type | Description
 
-|vaccinations
+|riskActivityDateVaginalIntercourse
 |[0..1]
-|Vaccination
-|Provides information on vaccinations the patient has received.
+|Boolean
+|Indicates if the patient engaged in vaginal intercourse that
+may pose a risk.
 
-|safeSexPractice
+|riskActivityDateOralIntercourse
 |[0..1]
-|SafeSexPractice
-|Indicates whether the patient engages in practices considered safe sex.
+|Boolean
+|Indicates if the patient engaged in oral intercourse that may
+pose a risk.
 
-|protectionMethodsUsed
+|riskActivityDateAnalIntercourse
 |[0..1]
-|ProtectionMethodsUsed
-|Lists the methods of protection the patient has used during sexual activity.
+|Boolean
+|Indicates if the patient engaged in anal intercourse that
+may pose a risk.
 
-|prepInfoProvided
+|otherRiskActivities
 |[0..1]
 |Boolean
-|Specifies whether the patient has received information about PrEP.
+|Indicates if the patient wants to provide details on any other risk-related
+activities the patient has participated.
 
-|riskActivityDateVaginalIntercourse
+|riskActivityDateVaginalIntercourseDate
 |[0..1]
 |LocalDate
 |Records the most recent date the patient engaged in vaginal intercourse that
 may pose a risk.
 
-|riskActivityDateOralIntercourse
+|riskActivityDateOralIntercourseDate
 |[0..1]
 |LocalDate
 |Records the most recent date the patient engaged in oral intercourse that may
 pose a risk.
 
-|riskActivityDateAnalIntercourse
+|riskActivityDateAnalIntercourseDate
 |[0..1]
 |LocalDate
 |Records the most recent date the patient engaged in anal intercourse that
 may pose a risk.
 
-|otherRiskActivities
+|otherRiskActivitiesData
 |[0..1]
 |String
 |Provides details on any other risk-related activities the patient has
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sex-work-medical-history.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sex-work-medical-history.adoc
index c2108086afea3d292335ba0dfbeb57b6a0c9f91a..b689ffaa57e40bd1acf3e6677bf0544da50d9f6a 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sex-work-medical-history.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sex-work-medical-history.adoc
@@ -10,16 +10,21 @@ to the medical history within the context of sex work.
 |===
 |Attribute | Card. | Type | Description
 
-|lastMenstruationDuration
+|lastMenstruationDate
 |[0..1]
 |LocalDate
 |The date when the patient last experienced menstruation.
 
-|lastCancerScreeningDuration
+|lastCancerScreeningDate
 |[0..1]
 |LocalDate
 |The date of the patient's most recent cancer screening.
 
+|previouslyPregnant
+|[0..1]
+|Boolean
+|Indicates if the patient was previously pregnant.
+
 |amountPregnancies
 |[0..1]
 |Integer
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sex-work-risk-contact.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sex-work-risk-contact.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..2246ac53f83acccce8e7a1a8ba3131e584c36b12
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sex-work-risk-contact.adoc
@@ -0,0 +1,21 @@
+=== Entity SexWorkMedicalHistory
+
+
+
+.Additional attributes of `SexWorkMedicalHistory`
+[cols="2,1,1,3"]
+|===
+|Attribute | Card. | Type | Description
+
+|startInSexWorkDate
+|[0..1]
+|LocalDate
+|The date when the patient began working in sex work.
+
+|sexWorkLocations
+|[0..1]
+|SexWorkLocation
+|The locations where the patient engages in sex work.
+
+|===
+
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sti-protection-procedure.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sti-protection-procedure.adoc
index a27f0e73a4357c9a05000988f0bd838c11789551..85a8b01d750c008bcfe4db1b206f51b6486c8576 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sti-protection-procedure.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-sti-protection-procedure.adoc
@@ -28,8 +28,7 @@ providing a clear indication of its current progress and outcome.
 |concern
 |[1..1]
 |Concern
-|The Concern indicates the specific context or reason for the procedure,
-indicating the patient's concerns.
+|The Concern indicates the specific context or reason for the procedure.
 
 |person
 |[1..1]
@@ -42,13 +41,13 @@ indicating the patient's concerns.
 |Specify the scheduled time period during which the procedure and associated
 tasks, such as examinations and testing, will be conducted.
 
-|calendarEventId
+|appointmentHistoryEntry
 |[1..1]
-|UUID
-|Unique id for the procedure in relation to calendar usage.
+|AppointmentHistoryEntry
+|Is used to document past and upcoming 'Appointments'.
 
 |waitingRoom
-|[1..1]
+|[0..1]
 |WaitingRoom
 |Represents a holding area where procedures await processing. It tracks key
 details to the status of the procedures being handled.
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-vaccination.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/entity-vaccination.adoc
deleted file mode 100644
index 136332a1c64276ecb98ee534902df32e3103d896..0000000000000000000000000000000000000000
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/entity-vaccination.adoc
+++ /dev/null
@@ -1,26 +0,0 @@
-=== Entity Vaccination
-
-The `Vaccination` entity records information regarding a patient's vaccination
-history. It captures the dates of important vaccinations.
-
-.Attributes of `Vaccination`
-[cols="2,1,1,3"]
-|===
-|Attribute | Card. | Type | Description
-
-|hepA
-|[0..1]
-|LocalDate
-|The date of the patient's most recent Hepatitis A vaccination.
-
-|hepB
-|[0..1]
-|LocalDate
-|The date of the patient's most recent Hepatitis B vaccination.
-
-|hpv
-|[0..1]
-|LocalDate
-|The date of the patient's most recent HPV vaccination.
-
-|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/enum-appointment-status.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/enum-appointment-status.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..3e40d611f693d39dcc9d4b8257b5879b3f042e7b
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/enum-appointment-status.adoc
@@ -0,0 +1,20 @@
+=== Enumeration AppointmentStatus
+
+The AppointmentStatus enumeration defines the possible statuses of an
+appointment.
+
+.Attributes of `AppointmentStatus`
+[cols="1,3"]
+|===
+|Value | Description
+
+|OPEN
+|Indicates that the appointment is currently open.
+
+|CLOSED
+|Indicates that the appointment is closed.
+
+|CANCELLED
+|Indicates that the appointment was cancelled.
+
+|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/enum-disease-type.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/enum-disease-type.adoc
deleted file mode 100644
index cce3dcbf76c5a1404d745c2c6940c4d1e35d429d..0000000000000000000000000000000000000000
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/enum-disease-type.adoc
+++ /dev/null
@@ -1,36 +0,0 @@
-=== Enumeration DiseaseType
-
-The `DiseaseType` enumeration represents a set of predefined values used to
-identify specific diseases. It is utilized for categorizing diagnoses or
-medical history data within health records.
-
-.Attributes of `DiseaseType`
-[cols="1,3"]
-|===
-|Value | Description
-
-|CHLAMYDIA
-|Indicates the disease type chlamydia.
-
-|GONORRHEA
-|Indicates the disease type gonorrhea.
-
-|HEPATITIS_A
-|Indicates the disease type Hepatitis A.
-
-|HEPATITIS_B
-|Indicates the disease type Hepatitis B.
-
-|HEPATITIS_C
-|Indicates the disease type Hepatitis C.
-
-|HIV
-|Indicates the disease type HIV.
-
-|HPV
-|Indicates the disease type HPV.
-
-|SYPHILIS
-|Indicates the disease type syphilis.
-
-|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/enum-sex-work-location.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/enum-sex-work-location.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..9b99512641f277486aeac903bf5547693dd60824
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/enum-sex-work-location.adoc
@@ -0,0 +1,39 @@
+=== Enumeration SexWorkLocation
+
+The `SexWorkLocation` indicates the locations where the patient engages in sex
+work.
+
+.Attributes of `SexWorkLocation`
+[cols="1,3"]
+|===
+|Value | Description
+
+|BORDELLO
+|Indicates that the patient works in a bordello.
+
+|CLUB
+|Indicates that the patient works in a club.
+
+|ESCORT
+|Indicates that the patient works as an escort.
+
+|APARTMENT
+|Indicates that the patient works in an apartment.
+
+|APPOINTMENT_APARTMENT
+|Indicates that the patient works in an appointment apartment.
+
+|MASSAGE_PARLOR
+|Indicates that the patient works in a massage parlor.
+
+|TANTRA_PRACTICE
+|Indicates that the patient works in a tantra practice.
+
+|STREET_PROSTITUTION
+|Indicates that the patient works in the streets.
+
+|OTHER
+|Indicates that the patient works in another location.
+
+|===
+
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/enum-vaccination.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/enum-vaccination.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..d84e73ccdbbdc0ab05ba0051c1b898bc24cc7991
--- /dev/null
+++ b/solution-strategy/business-modules/sti-protection/subdir/domain/enum-vaccination.adoc
@@ -0,0 +1,21 @@
+=== Enumeration Vaccination
+
+The `SexualOrientation` indicates the patient's sexual orientation, which refers
+to the pattern of romantic or sexual attraction to individuals of specific
+genders.
+
+.Attributes of `SexualOrientation`
+[cols="1,3"]
+|===
+|Value | Description
+
+|HEPATITIS_A
+|Indicates the patient was previously vaccinated against Hepatitis A.
+
+|HEPATITIS_B
+|Indicates the patient was previously vaccinated against Hepatitis B.
+
+|HPV
+|Indicates the patient was previously vaccinated against HPV.
+
+|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/domain/enumeration-risk-activity-type.adoc b/solution-strategy/business-modules/sti-protection/subdir/domain/enumeration-risk-activity-type.adoc
deleted file mode 100644
index a67dd161ad33d6d4e6018c8bede6218601aa825c..0000000000000000000000000000000000000000
--- a/solution-strategy/business-modules/sti-protection/subdir/domain/enumeration-risk-activity-type.adoc
+++ /dev/null
@@ -1,19 +0,0 @@
-=== Enumeration RiskActivityType
-
-Indicates the category of risk activity involved in the patient's case.
-
-.Attributes of `RiskActivityType`
-[cols="1,3"]
-|===
-|Value | Description
-
-|VAGINAL_INTERCOURSE
-|Indicates participation in vaginal intercourse.
-
-|ANAL_INTERCOURSE
-|Indicates participation in anal intercourse.
-
-|ORAL_INTERCOURSE
-|Indicates participation in oral intercourse.
-
-|===
\ No newline at end of file
diff --git a/solution-strategy/business-modules/sti-protection/subdir/use-cases.adoc b/solution-strategy/business-modules/sti-protection/subdir/use-cases.adoc
index 06ecdb1ebfe1ba82f65096f6df61c3cb483f8045..aa8684b2d2266de86c115ff4441c9cf2a8742ea7 100644
--- a/solution-strategy/business-modules/sti-protection/subdir/use-cases.adoc
+++ b/solution-strategy/business-modules/sti-protection/subdir/use-cases.adoc
@@ -50,7 +50,7 @@ code, it is not possible to reconnect the patient with the procedure, as no
 personally identifying data is stored.
 
 The access code remains valid until the procedure is closed. For each new
-procedure, a unique access code is generated, eben if it involves the same
+procedure, a unique access code is generated, even if it involves the same
 individual. This ensures that only minimal data is stored within each procedure,
 reducing the risk of identification through data aggregation.
 
@@ -139,12 +139,12 @@ system generates a PIN, which is then provided to the patient, with an option
 to change it later in the online portal.
 
 The PIN serves as a second factor for online portal logins and is also used by
-employees to perform an ID check. This ID check can be utilized in various
+employees to perform an ID-Check. This ID-Check can be utilized in various
 scenarios, such as verifying a patient's identity over the phone before sharing
 procedure-related information. It can also be used to confirm the patient's
 identity during in-person visits, particularly when providing test results.
 
-For an ID check, the employee enters the PIN in the employee portal, where the
+For an ID-Check, the employee enters the PIN in the employee portal, where the
 system verifies the combination of Access Code and PIN through Keycloak. The
 verification result is then displayed to the health department employee,
 allowing them to confirm the patient's identity before proceeding.
diff --git a/solution-strategy/business-modules/sti-protection/uml/domain/sti-protection-domain-model.puml b/solution-strategy/business-modules/sti-protection/uml/domain/sti-protection-domain-model.puml
index 79fb129d1ca78a5c6d4669c0dfd6d29670a0ccef..ee52a7817c80f0a8501a574c7d70649c46254762 100644
--- a/solution-strategy/business-modules/sti-protection/uml/domain/sti-protection-domain-model.puml
+++ b/solution-strategy/business-modules/sti-protection/uml/domain/sti-protection-domain-model.puml
@@ -23,40 +23,142 @@ class AppointmentBlockGroup #Lightyellow {
     locationId: UUID[0..1]
 }
 
+class AppointmentHistoryEntry #Lightyellow {
+    appointmentType: AppointmentType [1..1]
+    appointmentStart: Instant [1..1]
+    appointmentStatus: AppointmentStatus [1..1]
+}
+
 class Examination #Lightyellow {
-    hepA: LocalDate [1..1]
-    hepB: LocalDate [1..1]
-    hepC: LocalDate [1..1]
-    hiv: LocalDate [1..1]
-    syphilis: LocalDate [1..1]
-    gonorrhea: LocalDate [1..1]
-    chlamydia: LocalDate [1..1]
+    hepA: Boolean [0..1]
+    hepB: Boolean [0..1]
+    hepC: Boolean [0..1]
+    hiv: Boolean [0..1]
+    syphilis: Boolean [0..1]
+    gonorrhea: Boolean [0..1]
+    chlamydia: Boolean [0..1]
+    hepA: LocalDate [0..1]
+    hepB: LocalDate [0..1]
+    hepC: LocalDate [0..1]
+    hiv: LocalDate [0..1]
+    syphilis: LocalDate [0..1]
+    gonorrhea: LocalDate [0..1]
+    chlamydia: LocalDate [0..1]
+}
+
+class HepatitisLaboratoryTest #Lightyellow {
+    infection: Boolean [0..1]
+    vaccineTitre: Boolean [0..1]
+    value: String [0..1]
+    remark: String [0..1]
 }
 
 class MedicalHistory #Lightyellow {
     examinationReason: String [0..1]
     currentSymptoms: String [0..1]
-    contactToClarifyDuration: LocalDate [0..1]
+    contactToClarifyDate: LocalDate [0..1]
     relationshipModel: RelationShipModel [0..1]
     additionalComments: String [0..1]
 }
 
+class LaboratoryTest #Lightyellow {
+    result: Boolean [0..1]
+    value: String [0..1]
+    remark: String [0..1]
+}
+
+class LaboratoryTestExamination #Lightyellow {
+    sampleBarcode: String [0..1]
+    generalRemarks: String [0..1]
+    testsConducted: Boolean [0..1]
+    testsPayed: Boolean [0..1]
+    hivTestRequested: Boolean [0..1]
+    syphilisTestRequested: Boolean [0..1]
+    hepATestRequested: Boolean [0..1]
+    hepBTestRequested: Boolean [0..1]
+    hepCTestRequested: Boolean [0..1]
+    chlamydiaTestRequested: Boolean [0..1]
+    gonorrheaTestRequested: Boolean [0..1]
+    mycoplasmaTestRequested: Boolean [0..1]
+    cancerScreeningTestRequested: Boolean [0..1]
+    hpvTestRequested: Boolean [0..1]
+    mpoxTestRequested: Boolean [0..1]
+    otherTestRequested: Boolean [0..1]
+    hivTestData: LaboratoryTest [0..1]
+    syphilisTestData: Boolean [0..1]
+    hadSyphilis: LaboratoryTest [0..1]
+    hepATestData: HepatitisLaboratoryTest [0..1]
+    hepBTestData: HepatitisLaboratoryTest [0..1]
+    hepCTestData: LaboratoryTest [0..1]
+    chlamydiaTestSamples: LaboratoryTest [0..1]
+    gonorrhoeaTestSamples: LaboratoryTest [0..1]
+    mycoplasmaTestSamples: LaboratoryTest [0..1]
+    cancerScreeningTestData: LaboratoryTest [0..1]
+    hpvTestData: LaboratoryTest [0..1]
+    mpoxTestData: LaboratoryTest [0..1]
+    otherTestName: String [0..1]
+    otherTestData: LaboratoryTest [0..1]
+}
+
+class LaboratoryTestSamples #Lightyellow {
+    oralSampleRequested: Boolean [0..1]
+    oralSampleData: LaboratoryTest [0..1]
+    urethralSampleRequested: Boolean [0..1]
+    urethralSampleData: LaboratoryTest [0..1]
+    analSampleRequested: Boolean [0..1]
+    analSampleData: LaboratoryTest [0..1]
+}
+
 class Person #Lightyellow {
+    id: UUID [1..1]
     countryOfBirth: CountryCode [0..1]
     gender: Gender [1..1]
     inGermanySince: Integer [0..1]
     yearOfBirth: Integer [1..1]
+    accessCode: String [1..1]
+}
+
+class Prevention #Lightyellow {
+    vaccinations: Vaccination [0..1]
+    safeSexPractice: SafeSexPractice [0..1]
+    protectionMethod: ProtectionMethod [0..1]
+    infoAboutPrepDesired: Boolean [0..1]
 }
 
 class PreviousIllness #Lightyellow {
-    hepA: LocalDate [1..1]
-    hepB: LocalDate [1..1]
-    hepC: LocalDate [1..1]
-    hiv: LocalDate [1..1]
-    syphilis: LocalDate [1..1]
-    gonorrhea: LocalDate [1..1]
-    chlamydia: LocalDate [1..1]
-    otherPreviousIllnesses: String [0..1]
+    hepA: Boolean [0..1]
+    hepB: Boolean [0..1]
+    hepC: Boolean [0..1]
+    hiv: Boolean [0..1]
+    syphilis: Boolean [0..1]
+    gonorrhea: Boolean [0..1]
+    chlamydia: Boolean [0..1]
+    other: Boolean [0..1]
+    otherData: String [0..1]
+}
+
+class RapidTestData #Lightyellow {
+    number: String [0..1]
+    result: Boolean [0..1]
+}
+
+class RapidTestExamination #Lightyellow {
+    generalComments: Boolean [0..1]
+    testsPayed: Boolean [0..1]
+    hivRequested: Boolean [0..1]
+    syphilisRequested: Boolean [0..1]
+    pregnancyTestRequested: Boolean [0..1]
+    ultrasoundRequested: Boolean [0..1]
+    bloodPressureRequested: Boolean [0..1]
+    pulseRequested: Boolean [0..1]
+    urinalysisRequested: Boolean [0..1]
+    hivData: RapidTestData [0..1]
+    syphilisData: RapidTestData [0..1]
+    pregnancyTestData: RapidTestData [0..1]
+    ultrasoundData: String [0..1]
+    bloodPressureData: String [0..1]
+    pulseData: String [0..1]
+    urinalysisData: String [0..1]
 }
 
 class RiskContact #Lightyellow {
@@ -67,24 +169,31 @@ class RiskContact #Lightyellow {
 }
 
 class RiskFactor #Lightyellow {
-    safeSexPractice: SafeSexPractice [0..1]
-    protectionMethodsUsed: ProtectionMethodUsed [0..1]
-    prepInfoProvided: Boolean [0..1]
-    riskActivityDateVaginalIntercourse: LocalDate [0..1]
-    riskActivityDateOralIntercourse: LocalDate [0..1]
-    riskActivityDateAnalIntercourse: LocalDate [0..1]
-    otherRiskActivities: String [0..1]
+    riskActivityDateVaginalIntercourse: Boolean [0..1]
+    riskActivityDateOralIntercourse: Boolean [0..1]
+    riskActivityDateAnalIntercourse: Boolean [0..1]
+    otherRiskActivities: Boolean [0..1]
+    riskActivityDateVaginalIntercourseDate: LocalDate [0..1]
+    riskActivityDateOralIntercourseDate: LocalDate [0..1]
+    riskActivityDateAnalIntercourseDate: LocalDate [0..1]
+    otherRiskActivitiesData: String [0..1]
 }
 
 class SexWorkMedicalHistory #Lightyellow {
-    lastMenstruationDuration: LocalDate [0..1]
-    lastCancerScreeningDuration: LocalDate [0..1]
+    lastMenstruationDate: LocalDate [0..1]
+    lastCancerScreeningDate: LocalDate [0..1]
+    previouslyPregnant: Boolean [0..1]
     amountPregnancies: Integer [0..1]
     amountAbortions: Integer [0..1]
     knownOperations: String [0..1]
     medications: String [0..1]
 }
 
+class SexWorkRiskContact #Lightyellow {
+    startInSexWorkDate: LocalDate [0..1]
+    sexWorkLocations: SexWorkLocation [0..1]
+}
+
 class StiConsultationMedicalHistory #Lightyellow {
 }
 
@@ -102,12 +211,6 @@ class UserDefinedAppointment #Lightyellow {
     appointmentEnd: Instant [1..1]
 }
 
-class Vaccination #Lightyellow {
-    hepA: LocalDate [0..1]
-    hepB: LocalDate [0..1]
-    hepC: LocalDate [0..1]
-}
-
 class WaitingRoom #Lightyellow {
     id: Long [1..1]
     info: String [0..1]
@@ -115,6 +218,12 @@ class WaitingRoom #Lightyellow {
     modifiedAt: Instant [1..1]
 }
 
+enum AppointmentStatus #Lightyellow {
+    OPEN
+    CLOSED
+    CANCELLED
+}
+
 enum Concern #Lightyellow {
     HIV_STI_CONSULTATION
     SEX_WORK
@@ -127,17 +236,6 @@ enum CountryCode #Lightyellow {
     ...
 }
 
-enum DiseaseType #Lightyellow {
-    CHLAMYDIA
-    GONORRHEA
-    HEPATITIS_A
-    HEPATITIS_B
-    HEPATITIS_C
-    HIV
-    HPV
-    SYPHILIS
-}
-
 enum Gender #Lightyellow {
     NOT_SPECIFIED
     DIVERSE
@@ -191,6 +289,24 @@ enum SexualOrientation #Lightyellow {
     NOT_SPECIFIED
 }
 
+enum SexWorkLocation #Lightyellow {
+      BORDELLO
+      CLUB
+      ESCORT
+      APARTMENT
+      APPOINTMENT_APARTMENT
+      MASSAGE_PARLOR
+      TANTRA_PRACTICE
+      STREET_PROSTITUTION
+      OTHER
+}
+
+enum Vaccination #Lightyellow {
+    HEPATITIS_A,
+    HEPATITIS_B,
+    HPV
+}
+
 enum WaitingStatus #Lightyellow {
     WAITING_FOR_CONSULTATION,
     WAITING_FOR_RESULTS_REVIEW,
@@ -205,20 +321,27 @@ StiProtectionProcedure -up-|> Procedure
 StiProtectionProcedure "1..1" *-- "1..1"  MedicalHistory
 StiProtectionProcedure "1..1" *-- "0..1"  Appointment
 StiProtectionProcedure "1..1" *-- "0..1"  UserDefinedAppointment
-StiProtectionProcedure "1..1" *-- "1..1"  WaitingRoom
+StiProtectionProcedure "1..1" *-- "0..1"  AppointmentHistoryEntry
+StiProtectionProcedure "1..1" *-- "0..1"  WaitingRoom
 StiProtectionProcedure "1..1" *-- "1..1"  Person
 AppointmentBlockGroup "1..1"*--"1..*" "AppointmentBlock"
 "AppointmentBlock" "1..1"--"1..*" "Appointment"
 MedicalHistory <|-- SexWorkMedicalHistory
 MedicalHistory <|-- StiConsultationMedicalHistory
-SexWorkMedicalHistory *--  Examination : "0..1"
-SexWorkMedicalHistory *--  PreviousIllness : "0..1"
-SexWorkMedicalHistory *--  RiskContact : "0..1"
-SexWorkMedicalHistory *--  RiskFactor : "0..1"
-StiConsultationMedicalHistory *--  Examination : "0..1"
-StiConsultationMedicalHistory *--  PreviousIllness : "0..1"
-StiConsultationMedicalHistory *--  RiskContact : "0..1"
-StiConsultationMedicalHistory *--  RiskFactor : "0..1"
-RiskFactor *-- Vaccination: "0..1"
+MedicalHistory *-u- Examination: "0..1"
+MedicalHistory *-u- Prevention: "0..1"
+MedicalHistory *-u- PreviousIllness: "0..1"
+MedicalHistory *-u- RiskContact: "0..1"
+MedicalHistory *-u- RiskFactor: "0..1"
+SexWorkMedicalHistory *--  SexWorkRiskContact : "0..1"
+StiProtectionProcedure "1..1" *-- "1..1"  RapidTestExamination
+RapidTestExamination *-- RapidTestData
+
+StiProtectionProcedure "1..1" *-- "1..1"  LaboratoryTestExamination
+LaboratoryTestExamination *-- LaboratoryTest
+LaboratoryTestExamination *-- HepatitisLaboratoryTest
+
+
+
 
 @enduml