@startuml CCreplyMessage

'layout
skinparam class {
    BackgroundColor White
    BorderColor Black
    ArrowColor Black
  }
hide circle
hide empty members
skinparam SameClassWidth true
skinparam Ranksep 10


'title
title Simplified example: Reply message

'Message 1: reply message
package "CareCommunication message: Reply message" as reply <<Frame>>{
    class "Bundle (MedComCareCommunicationMessage)" as replyB {
        id = "256549f7-ed10-422d-8088-f7222b686e46"
        type = "message"
        timestamp = "2022-10-02T11:30:10"
    }
    class "MessageHeader (MedComCareCommunicationMessageHeader)" as replyMH{
        id = "d5bd2111-2576-48d3-84d4-8be0297a038d"
        event.system = "http://medcomfhir.dk/ig/terminology/CodeSystem/medcom-messaging-eventCodes"
        event.code = "care-communication-message"
        destination.use.system = "http://medcomfhir.dk/ig/terminology/CodeSystem/medcom-messaging-destinationUse"
        destination.use.code = "primary"
        destination.endpoint = "https://sor2.sum.dsdn.dk/#id=265161000016000"
        destination.receiver.reference = "Organization/9eb51090-5503-11ed-bdc3-0242ac120002"
        sender.reference = "Organization/b2c584de-5503-11ed-bdc3-0242ac120002"
        source.endpoint = "https://sor2.sum.dsdn.dk/#id=953741000016009"
        focus.reference = "Communication/4c712bdc-1558-4125-a854-fa8b3a11f6ed"
    }
    class "Patient (MedComCorePatient)" as replyPT{
        id = "31c90594-54ff-11ed-bdc3-0242ac120002"
        identifier.system = "urn:oid:1.2.208.176.1.2"
        identifier.value = "2509479989"
        name.use = "official"
        name.family = "Elmer"
        name.given[0] = "Bruno"
        name.given[1] = "Test"
    }
    class "Communication (MedComCareCommunication)" as replyCom{
        id = "4c712bdc-1558-4125-a854-fa8b3a11f6ed"
        status = "unknown"
        class = "carecoordination"
        subject.reference = "Patient/31c90594-54ff-11ed-bdc3-0242ac120002"
        payload[0].contentString = "Thank you for notifying us, we will take care of it..."
        payload[0].extension:date = "2022-10-02T11:30:05Z"
        payload[0].extension:author.reference = "PractitionerRole/8bf63050-5504-11ed-bdc3-0242ac120002"
        payload[0].extension:authorContact.value = "44527000"
        payload[1].contentString = "Regarding the rehabilitation plan, please notice that..."
        payload[1].extension:date = "2022-10-01T12:00:05Z"
        payload[1].extension:author.reference = "PractitionerRole/eda90bde-54f9-11ed-bdc3-0242ac120002"
        payload[1].extension:authorContact.value = "38683868"
    } 
    class "PractitionerRole (MedComCorePractitionerRole)" as replyPracR{
        id = "8bf63050-5504-11ed-bdc3-0242ac120002"
        practitioner.reference = "Practitioner/7ffff970-5504-11ed-bdc3-0242ac120002"
        code.system = "https://medcomfhir.dk/ig/terminology/CodeSystem/medcom-core-PractitionerRolesSKSadministrativ"
        code.value = "sygeplejerske"
    }
    class "Practitioner (MedComCorePractitioner)" as replyPrac{
        id = "7ffff970-5504-11ed-bdc3-0242ac120002"
        name.family = "Emma"
        name.given = "Waters"
    }
    class "PractitionerRole (MedComCorePractitionerRole)" as newPracR{
        id = "eda90bde-54f9-11ed-bdc3-0242ac120002"
        practitioner.reference = "Practitioner/58c811a5-4082-44eb-9d66-ccbb112d4973"
        code.system = "https://medcomfhir.dk/ig/terminology/CodeSystem/medcom-core-PractitionerRolesSKSadministrativ"
        code.value = "sygeplejerske"
    }
    class "Practitioner (MedComCorePractitioner)" as newPrac{
        id = "58c811a5-4082-44eb-9d66-ccbb112d4973"
        name.family = "Michael"
        name.given = "Burns"
    }
    class "Receiver (MedComMessagingOrganization)" as replyROrg{
        id = "9eb51090-5503-11ed-bdc3-0242ac120002"
        identifier[0].system = "https://www.gs1.org/gln"
        identifier[0].value = "5790000209354"
        identifier[1].system = "urn:oid:1.2.208.176.1.1"
        identifier[1].value = "265161000016000"
    }
    class "Sender (MedComMessagingOrganization)" as replySOrg{
        id = "b2c584de-5503-11ed-bdc3-0242ac120002"
        identifier[0].system = "https://www.gs1.org/gln"
        identifier[0].value = "5790001348120"
        identifier[1].system = "urn:oid:1.2.208.176.1.1"
        identifier[1].value = "953741000016009"
    }
    class "Provenance (MedComMessagingProvenance)" as replyPRO{
        id = "30c0f779-783f-46b2-b38f-faebd2bedb3f"
        target = "MessageHeader/d5bd2111-2576-48d3-84d4-8be0297a038d"
        occuredDateTime = "2022-10-02T11:30:11Z"
        recorded = "2022-10-02T11:30:11"
        activity.system = "http://medcomfhir.dk/ig/terminology/CodeSystem/medcom-messaging-activityCodes"
        activity.code = "reply-message"
        agent.who.reference = "Organization/b2c584de-5503-11ed-bdc3-0242ac120002"
        entity.role.system = "http://hl7.org/fhir/ValueSet/provenance-entity-role"
        entity.role.value = "revision"
        entity.what.reference = "MessageHeader/42cb9200-f421-4d08-8391-7d51a2503cb4"
    }
    class "Provenance (MedComMessagingProvenance)" as newPRO{
        id = "4c284936-5454-4116-95fc-3c8eeeed2400"
        target.reference = "MessageHeader/42cb9200-f421-4d08-8391-7d51a2503cb4"
        occuredDateTime = "2022-10-02T11:30:11Z"
        recorded = "2022-10-02T11:30:11"
        activity.system = "http://medcomfhir.dk/ig/terminology/CodeSystem/medcom-messaging-activityCodes"
        activity.code = "new-message"
        agent.who.reference = "Organization/b2c584de-5503-11ed-bdc3-0242ac120002"
    }

replyB -[hidden]- replyMH
replyMH -[hidden]-replyPT
replyPT-[hidden]-replyCom
replyCom -[hidden]-replyPracR
replyPracR-[hidden]-replyPrac
replyPrac-[hidden]-newPracR
newPracR-[hidden]-newPrac
newPrac-[hidden]-replyROrg
replyROrg-[hidden]- replySOrg
replySOrg-[hidden]-replyPRO
replyPRO-[hidden]-newPRO


@enduml
