@startuml !pragma teoz true Title PSS Functional data exchange hide footbox group #edf PSS-0 - Confirm consent EPD -> PSS : \n**POST /Consent** activate PSS note right of EPD |_ HCP-ID |_ datetime |_ terms&conditions |_ url |_ text |_ version |_ options end note deactivate EPD deactivate PSS end ||| ||| group #DFE PSS-1 - Given existing data, query the structured list of applicable indications activate EPD EPD -> PSS : \n**POST /PlanDefinition/GetDiagnoses/$apply**\n Payload:\n subject=PSSPatient\n data=PSSRequestBundle & PSS -> QSI & PSS -[hidden]-> QSI : " " 'PSS -> QSI : GET /indictions activate PSS activate QSI QSI -> PSS & PSS -> EPD: Propose Indications \nPayload:\n subject=PSSPatient\n data=PSSResponseBundle deactivate PSS deactivate QSI ||| end ... group #fed PSS-3 - Given some data (+ a procedure), request recommended procedures EPD -> PSS : \n**POST /PlanDefinition/GetRecommendations/$apply**\n Payload:\n subject=Y\n data=Bundle & PSS --> QSI & PSS -[hidden]-> QSI : " " activate PSS activate QSI QSI --> PSS & PSS -> EPD: Reponse\nPayload:\n subject=PSSPatient\n data=PSSResponseBundle deactivate PSS deactivate QSI ||| end ... group #efd PSS-4 - Give feedback EPD -> PSS : \n**POST /PlanDefinition/GetRecommendations/$feedback** note left of PSS |_ PSS-ID |_ datetime |_ outcome |_ suggestionOutcomes |_ suggestionId |_ outcome |_ overrideReason end note deactivate EPD activate PSS & PSS -[hidden]-> QSI : " " deactivate PSS ||| end ... ... group #fde PSS-5 - Consult prior result EPD -> PSS : \n**GET /Bundle/{PSS-ID}** & PSS -[hidden]-> QSI : " " ' activate EPD end ... group #dfe PSS-6 - Consult feeback ADM -> PSS : \n**GET /Task?focus={PSS-ID}** & PSS -[hidden]-> QSI : " " activate PSS ||| PSS -> ADM note left of PSS |_ PSS-ID |_ datetime |_ outcome |_ suggestionOutcomes |_ suggestionId |_ outcome |_ overrideReason end note deactivate EPD & PSS -[hidden]-> QSI : " " deactivate PSS ||| ' activate EPD end @enduml