VA CKD Protocol
Transformation of an adapted version of the VA CKD Protocol process as defined here.
Discussions
- Action 3 / 3.1 “Refer to emergency department” are probably not modelled correctly. They should be surrounded by an xor and a condition, rather than defining a action with a subaction which results in a subprocess to perform a check.
Graph
Usage: Mouse Click + Move: Scroll around. Ctrl + Mouse Wheel: Zoom.HL7 FHIR
<!-- ~ Copyright (c) 2020 the original author or authors. ~ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ~ ~ This Source Code Form is subject to the terms of the Mozilla Public ~ License, v. 2.0. If a copy of the MPL was not distributed with this ~ file, You can obtain one at https://mozilla.org/MPL/2.0/. --> <PlanDefinition xmlns="http://hl7.org/fhir"> <id value="va-ckd-protocol"/> <meta> <profile value="http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-protocoldefinition"/> </meta> <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"><p><b>Generated Narrative with Details</b></p><p><b>id</b>: va-ckd-protocol</p><p><b>meta</b>: </p><p><b>url</b>: <a href="http://hl7.org/fhir/uv/cpg/PlanDefinition/va-ckd-protocol">http://hl7.org/fhir/uv/cpg/PlanDefinition/va-ckd-protocol</a></p><p><b>identifier</b>: VA_CKD_Protocol (OFFICIAL)</p><p><b>version</b>: 0.1.0</p><p><b>name</b>: VA_CKD_Protocol</p><p><b>title</b>: VA CKD Protocol</p><p><b>type</b>: Clinical Protocol <span style="background: LightGoldenRodYellow">(Details : {http://terminology.hl7.org/CodeSystem/plan-definition-type code 'clinical-protocol' = 'Clinical Protocol', given as 'Clinical Protocol'})</span></p><p><b>status</b>: draft</p><p><b>experimental</b>: true</p><p><b>date</b>: Jul 27, 2019 8:00:00 PM</p><p><b>publisher</b>: HL7 FHIR Clinical Guidelines Example Artifact</p><p><b>description</b>: VA CKD Protocol</p><p><b>useContext</b>: </p><p><b>jurisdiction</b>: World <span style="background: LightGoldenRodYellow">(Details : {http://unstats.un.org/unsd/methods/m49/m49.htm code '001' = 'World', given as 'World'})</span></p><p><b>copyright</b>: Copyright © Example.org 2019.</p><p><b>approvalDate</b>: Jul 28, 2019</p><p><b>lastReviewDate</b>: Jul 28, 2019</p><p><b>effectivePeriod</b>: Jul 28, 2019 12:00:00 AM --> (ongoing)</p><p><b>topic</b>: Treatment <span style="background: LightGoldenRodYellow">(Details : {http://terminology.hl7.org/CodeSystem/definition-topic code 'treatment' = 'Treatment', given as 'Treatment'})</span></p><p><b>author</b>: </p><blockquote><p><b>action</b></p><p><b>id</b>: 001</p><p><b>title</b>: History and Phyiscal</p><p><b>description</b>: Obtain initial clinical information: medical history (including risk factors for kidney disease), physical examination and review existing laboratory results.</p><p><b>code</b>: History and Physical <span style="background: LightGoldenRodYellow">(Details : {http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process code 'history-and-physical' = 'History and Physical', given as 'History and Physical'})</span></p></blockquote><blockquote><p><b>action</b></p><p><b>id</b>: 002</p><p><b>title</b>: At-Risk Population</p><p><b>description</b>: Evaluate at-risk patients for CKD: obtain SCr, eGFR, urinalysis, & spot urine UAER.</p><p><b>code</b>: History and Physical <span style="background: LightGoldenRodYellow">(Details : {http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process code 'history-and-physical' = 'History and Physical', given as 'History and Physical'})</span></p></blockquote><blockquote><p><b>action</b></p><p><b>id</b>: 003</p><p><b>title</b>: Urgent/Emergent Conditions</p><p><b>description</b>: Does patient have an urgent or emergent condition?</p><p><b>code</b>: Triage <span style="background: LightGoldenRodYellow">(Details : {http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process code 'triage' = 'Triage', given as 'Triage'})</span></p><h3>Actions</h3><table class="grid"><tr><td>-</td></tr><tr><td>*</td></tr></table></blockquote><blockquote><p><b>action</b></p><p><b>id</b>: 004</p><p><b>title</b>: Criteria for Confirmed CKD</p><p><b>description</b>: Does patient have evidence of CKD?</p><p><b>code</b>: Determine Diagnosis <span style="background: LightGoldenRodYellow">(Details : {http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process code 'determine-diagnosis' = 'Determine Diagnosis', given as 'Determine Diagnosis'})</span></p><h3>Conditions</h3><table class="grid"><tr><td>-</td><td><b>Kind</b></td><td><b>Expression</b></td></tr><tr><td>*</td><td>applicability</td><td/></tr></table><h3>Actions</h3><table class="grid"><tr><td>-</td></tr><tr><td>*</td></tr><tr><td>*</td></tr></table></blockquote></div> </text> <url value="http://hl7.org/fhir/uv/cpg/PlanDefinition/va-ckd-protocol"/> <identifier> <use value="official"/> <value value="VA_CKD_Protocol"/> </identifier> <version value="0.1.0"/> <name value="VA_CKD_Protocol"/> <title value="VA CKD Protocol"/> <type> <coding> <system value="http://terminology.hl7.org/CodeSystem/plan-definition-type"/> <code value="clinical-protocol"/> <display value="Clinical Protocol"/> </coding> </type> <status value="draft"/> <experimental value="true"/> <date value="2019-07-27T20:00:00-04:00"/> <publisher value="HL7 FHIR Clinical Guidelines Example Artifact"/> <description value="VA CKD Protocol"/> <useContext> <code> <system value="http://terminology.hl7.org/CodeSystem/usage-context-type"/> <code value="focus"/> <display value="Clinical Focus"/> </code> <valueCodeableConcept> <coding> <system value="http://snomed.info/sct"/> <code value="709044004"/> <display value="Chronic kidney disease (disorder)"/> </coding> </valueCodeableConcept> </useContext> <jurisdiction> <coding> <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> <code value="001"/> <display value="World"/> </coding> </jurisdiction> <copyright value="Copyright © Example.org 2019."/> <approvalDate value="2019-07-28"/> <lastReviewDate value="2019-07-28"/> <effectivePeriod> <start value="2019-07-28T00:00:00-04:00"/> </effectivePeriod> <topic> <coding> <system value="http://terminology.hl7.org/CodeSystem/definition-topic"/> <code value="treatment"/> <display value="Treatment"/> </coding> </topic> <author> <name value="Dave Carlson"/> </author> <action id="id_001"> <title value="History and Phyiscal"/> <description value="Obtain initial clinical information: medical history (including risk factors for kidney disease), physical examination and review existing laboratory results."/> <code> <coding> <system value="http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process"/> <code value="history-and-physical"/> <display value="History and Physical"/> </coding> </code> <relatedAction> <!-- added --> <actionId value="id_002"/> <!-- added --> <relationship value="before-start"/> <!-- added --> </relatedAction> <!-- added --> </action> <action id="id_002"> <title value="At-Risk Population"/> <description value="Evaluate at-risk patients for CKD: obtain SCr, eGFR, urinalysis, & spot urine UAER."/> <code> <coding> <system value="http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process"/> <code value="history-and-physical"/> <display value="History and Physical"/> </coding> </code> <relatedAction> <!-- added --> <actionId value="id_003"/> <!-- added --> <relationship value="before-start"/> <!-- added --> </relatedAction> <!-- added --> </action> <action id="id_003"> <title value="Urgent/Emergent Conditions"/> <description value="Does patient have an urgent or emergent condition?"/> <!-- Note: This should probably become some condition with surrounding xor_group to make sense--> <code> <coding> <system value="http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process"/> <code value="triage"/> <display value="Triage"/> </coding> </code> <action id="id_003.1"> <title value="Refer to emergency department."/> <description value="Refer to emergency department to manage or stabilize."/> <code> <coding> <system value="http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process"/> <code value="triage"/> <display value="Triage"/> </coding> </code> </action> <relatedAction> <!-- added --> <actionId value="xor_group"/> <!-- added --> <relationship value="before-start"/> <!-- added --> </relatedAction> <!-- added --> </action> <action> <!-- added --> <id value="xor_group"/> <!-- added --> <title value="Xor_group"/> <!-- added --> <groupingBehavior value="logical-group"/> <!-- added --> <selectionBehavior value="at-most-one"/> <!-- added --> <action id="id_004"> <!-- moved to xor --> <title value="Criteria for Confirmed CKD"/> <description value="Does patient have evidence of CKD?"/> <code> <coding> <system value="http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process"/> <code value="determine-diagnosis"/> <display value="Determine Diagnosis"/> </coding> </code> <condition> <kind value="applicability"/> <expression> <language value="text/cql"/> <expression value="Has evidence of CKD?"/> </expression> </condition> <action id="id_004.1"> <title value="Stages of CKD."/> <description value="Complete clinical assessment. Determine stage of CKD."/> <code> <coding> <system value="http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process"/> <code value="determine-diagnosis"/> <display value="Determine Diagnosis"/> </coding> </code> <relatedAction> <!-- added --> <actionId value="id_004.2"/> <!-- added --> <relationship value="before-start"/> <!-- added --> </relatedAction> <!-- added --> </action> <action id="id_004.2"> <title value="Strategies to Slow Progression."/> <description value="Establish primary etiology of CKD and treatment plan to slow progression."/> <code> <coding> <system value="http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-common-process"/> <code value="guideline-based-care"/> <display value="Guideline-based Care"/> </coding> </code> </action> <relatedAction> <!-- added --> <actionId value="xor_group"/> <!-- added --> <relationship value="before-end"/> <!-- added --> </relatedAction> <!-- added --> </action> </action> </PlanDefinition>
BPMN
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:ns2="http://www.omg.org/spec/DD/20100524/DI" xmlns:ns3="http://www.omg.org/spec/DD/20100524/DC" xmlns:ns4="http://www.omg.org/spec/BPMN/20100524/DI" targetNamespace="http://aist.fh-hagenberg.at/msbpmn"> <process isExecutable="false" name="VA_CKD_Protocol" id="VA_CKD_Protocol"> <startEvent isInterrupting="false" parallelMultiple="false" name="start" id="id_start64"> <outgoing>sf_start64_id_001</outgoing> </startEvent> <sequenceFlow sourceRef="id_start64" targetRef="id_id_001" id="sf_start64_id_001"/> <userTask name="History and Phyiscal" id="id_id_001"> <incoming>sf_start64_id_001</incoming> <outgoing>sf_id_001_id_002</outgoing> </userTask> <sequenceFlow sourceRef="id_id_001" targetRef="id_id_002" id="sf_id_001_id_002"/> <userTask name="At-Risk Population" id="id_id_002"> <incoming>sf_id_001_id_002</incoming> <outgoing>sf_id_002_id_003</outgoing> </userTask> <sequenceFlow sourceRef="id_id_002" targetRef="id_id_003" id="sf_id_002_id_003"/> <subProcess name="Urgent/Emergent Conditions" id="id_id_003"> <incoming>sf_id_002_id_003</incoming> <outgoing>sf_id_003_xor_group</outgoing> <startEvent isInterrupting="false" parallelMultiple="false" name="start" id="id_start66"> <outgoing>sf_start66_id_003.1</outgoing> </startEvent> <sequenceFlow sourceRef="id_start66" targetRef="id_id_003.1" id="sf_start66_id_003.1"/> <userTask name="Refer to emergency department." id="id_id_003.1"> <incoming>sf_start66_id_003.1</incoming> <outgoing>sf_id_003.1_end67</outgoing> </userTask> <sequenceFlow sourceRef="id_id_003.1" targetRef="id_end67" id="sf_id_003.1_end67"/> <endEvent name="end" id="id_end67"> <incoming>sf_id_003.1_end67</incoming> </endEvent> </subProcess> <sequenceFlow sourceRef="id_id_003" targetRef="id_xor_group" id="sf_id_003_xor_group"/> <exclusiveGateway name="Xor_group" id="id_xor_group"> <incoming>sf_id_003_xor_group</incoming> <outgoing>sf_xor_group_id_004</outgoing> <outgoing>sf_xor_group_join_of_xor_group</outgoing> </exclusiveGateway> <sequenceFlow sourceRef="id_xor_group" targetRef="id_id_004" name="Has evidence of CKD?" id="sf_xor_group_id_004"> <conditionExpression id="sf_xor_group_id_004_condition">Has evidence of CKD?</conditionExpression> </sequenceFlow> <sequenceFlow sourceRef="id_xor_group" targetRef="id_join_of_xor_group" name="else" id="sf_xor_group_join_of_xor_group"> <conditionExpression id="sf_xor_group_join_of_xor_group_condition">else</conditionExpression> </sequenceFlow> <subProcess name="Criteria for Confirmed CKD" id="id_id_004"> <incoming>sf_xor_group_id_004</incoming> <outgoing>sf_id_004_join_of_xor_group</outgoing> <startEvent isInterrupting="false" parallelMultiple="false" name="start" id="id_start68"> <outgoing>sf_start68_id_004.1</outgoing> </startEvent> <sequenceFlow sourceRef="id_start68" targetRef="id_id_004.1" id="sf_start68_id_004.1"/> <userTask name="Stages of CKD." id="id_id_004.1"> <incoming>sf_start68_id_004.1</incoming> <outgoing>sf_id_004.1_id_004.2</outgoing> </userTask> <sequenceFlow sourceRef="id_id_004.1" targetRef="id_id_004.2" id="sf_id_004.1_id_004.2"/> <userTask name="Strategies to Slow Progression." id="id_id_004.2"> <incoming>sf_id_004.1_id_004.2</incoming> <outgoing>sf_id_004.2_end69</outgoing> </userTask> <sequenceFlow sourceRef="id_id_004.2" targetRef="id_end69" id="sf_id_004.2_end69"/> <endEvent name="end" id="id_end69"> <incoming>sf_id_004.2_end69</incoming> </endEvent> </subProcess> <sequenceFlow sourceRef="id_id_004" targetRef="id_join_of_xor_group" id="sf_id_004_join_of_xor_group"/> <exclusiveGateway name="join" id="id_join_of_xor_group"> <incoming>sf_id_004_join_of_xor_group</incoming> <incoming>sf_xor_group_join_of_xor_group</incoming> <outgoing>sf_join_of_xor_group_end65</outgoing> </exclusiveGateway> <sequenceFlow sourceRef="id_join_of_xor_group" targetRef="id_end65" id="sf_join_of_xor_group_end65"/> <endEvent name="end" id="id_end65"> <incoming>sf_join_of_xor_group_end65</incoming> </endEvent> </process> <ns4:BPMNDiagram> <ns4:BPMNPlane bpmnElement="VA_CKD_Protocol"> <ns4:BPMNShape bpmnElement="id_start66" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="530.0" y="270.0" width="30.0" height="30.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_id_003.1" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="610.0" y="245.0" width="100.0" height="80.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_end67" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="760.0" y="270.0" width="30.0" height="30.0"/> </ns4:BPMNShape> <ns4:BPMNEdge bpmnElement="sf_id_003.1_end67"> <ns2:waypoint x="710.0" y="285.0"/> <ns2:waypoint x="760.0" y="285.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_start66_id_003.1"> <ns2:waypoint x="560.0" y="285.0"/> <ns2:waypoint x="610.0" y="285.0"/> </ns4:BPMNEdge> <ns4:BPMNShape bpmnElement="id_start68" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="1080.0" y="175.0" width="30.0" height="30.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_id_004.1" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="1160.0" y="150.0" width="100.0" height="80.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_id_004.2" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="1310.0" y="150.0" width="100.0" height="80.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_end69" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="1460.0" y="175.0" width="30.0" height="30.0"/> </ns4:BPMNShape> <ns4:BPMNEdge bpmnElement="sf_id_004.1_id_004.2"> <ns2:waypoint x="1260.0" y="190.0"/> <ns2:waypoint x="1310.0" y="190.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_start68_id_004.1"> <ns2:waypoint x="1110.0" y="190.0"/> <ns2:waypoint x="1160.0" y="190.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_id_004.2_end69"> <ns2:waypoint x="1410.0" y="190.0"/> <ns2:waypoint x="1460.0" y="190.0"/> </ns4:BPMNEdge> <ns4:BPMNShape bpmnElement="id_start64" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="60.0" y="247.0" width="30.0" height="30.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_id_001" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="140.0" y="222.0" width="100.0" height="80.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_id_002" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="290.0" y="225.0" width="100.0" height="80.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_id_003" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="440.0" y="155.0" width="410.0" height="230.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_xor_group" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="900.0" y="257.0" width="40.0" height="40.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_id_004" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="990.0" y="60.0" width="560.0" height="230.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_join_of_xor_group" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="1600.0" y="261.0" width="40.0" height="40.0"/> </ns4:BPMNShape> <ns4:BPMNShape bpmnElement="id_end65" isHorizontal="true" isExpanded="true"> <ns3:Bounds x="1690.0" y="266.0" width="30.0" height="30.0"/> </ns4:BPMNShape> <ns4:BPMNEdge bpmnElement="sf_id_003_xor_group"> <ns2:waypoint x="850.0" y="270.0"/> <ns2:waypoint x="875.0" y="270.0"/> <ns2:waypoint x="875.0" y="277.0"/> <ns2:waypoint x="900.0" y="277.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_id_004_join_of_xor_group"> <ns2:waypoint x="1550.0" y="175.0"/> <ns2:waypoint x="1575.0" y="175.0"/> <ns2:waypoint x="1575.0" y="281.0"/> <ns2:waypoint x="1600.0" y="281.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_id_002_id_003"> <ns2:waypoint x="390.0" y="265.0"/> <ns2:waypoint x="415.0" y="265.0"/> <ns2:waypoint x="415.0" y="270.0"/> <ns2:waypoint x="440.0" y="270.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_start64_id_001"> <ns2:waypoint x="90.0" y="262.0"/> <ns2:waypoint x="140.0" y="262.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_xor_group_id_004"> <ns2:waypoint x="940.0" y="277.0"/> <ns2:waypoint x="965.0" y="277.0"/> <ns2:waypoint x="965.0" y="175.00000000000003"/> <ns2:waypoint x="990.0" y="175.00000000000003"/> <ns4:BPMNLabel> <ns3:Bounds x="875.0" y="226.0" width="90.0" height="30.0"/> </ns4:BPMNLabel> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_id_001_id_002"> <ns2:waypoint x="240.0" y="262.0"/> <ns2:waypoint x="265.0" y="262.0"/> <ns2:waypoint x="265.0" y="265.0"/> <ns2:waypoint x="290.0" y="265.0"/> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_xor_group_join_of_xor_group"> <ns2:waypoint x="940.0" y="277.0"/> <ns2:waypoint x="1270.0" y="277.0"/> <ns2:waypoint x="1270.0" y="281.0"/> <ns2:waypoint x="1600.0" y="281.0"/> <ns4:BPMNLabel> <ns3:Bounds x="1180.0" y="279.0" width="90.0" height="30.0"/> </ns4:BPMNLabel> </ns4:BPMNEdge> <ns4:BPMNEdge bpmnElement="sf_join_of_xor_group_end65"> <ns2:waypoint x="1640.0" y="281.0"/> <ns2:waypoint x="1690.0" y="281.0"/> </ns4:BPMNEdge> </ns4:BPMNPlane> </ns4:BPMNDiagram> </definitions>