valueflows

valueflows docs
git clone https://s.sonu.ch/~srfsh/valueflows.git
Log | Files | Refs | README

commit c2d2fc28e2a3dd73fd9534221a590fac8eb21f07
parent 706aabec7201d7bd29f7b78be526a24ba6110d81
Author: Bob Haugen <bob.haugen@gmail.com>
Date:   Sun, 12 Sep 2021 12:03:09 +0000

Merge branch 'pack-unpack' into 'master'

Add pack and unpack

See merge request valueflows/valueflows!652
Diffstat:
Mdocs/examples/ex-production.md | 8++++++++
Mdocs/introduction/flows.md | 48++++++++++++++++++++++++++----------------------
Aexamples/process-pack-unpack.yaml | 262+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Arelease-doc-in-process/pack-unpack.png | 0
Arelease-doc-in-process/pack-unpack.xml | 220+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 516 insertions(+), 22 deletions(-)

diff --git a/docs/examples/ex-production.md b/docs/examples/ex-production.md @@ -3,6 +3,7 @@ 1. [Manufacturing](#manufacturing) 1. [Service](#service) 1. [Workflow production](#workflow-production) +1. [Pack unpack](#pack-unpack) #### Manufacturing @@ -28,3 +29,10 @@ Simple repair process with typical inputs and outputs. The same economic resour [import, lang:"yaml"](../../examples/process-workflow.yaml) +#### Pack unpack + +Simple pack and unpack of resources into and out of a container resource. + +![pack unpack diagram](https://raw.githubusercontent.com/valueflows/valueflows/master/release-doc-in-process/pack-unpack.png) + +[import, lang:"yaml"](../../examples/process-pack-unpack.yaml) diff --git a/docs/introduction/flows.md b/docs/introduction/flows.md @@ -52,36 +52,40 @@ All flows use an action property to designate what the flow is doing and how it * vf:consume - for example an ingredient or component composed into the output, after the process the ingredient is gone * vf:cite - for example a design file, neither used nor consumed, the file remains available at all times * vf:work - labor power applied to a process -* vf:pickup - transported resource or person enters the process; the same resource will appear in output with *vf:dropoff* verb -* vf:dropoff - transported resource or person leaves the process; the same resource or person appeared in input with vf:pickup verb -* vf:accept - in processes like repair or modification or testing, the same resource will appear in output with *vf:modify* verb -* vf:modify - in processes like repair or modification, the same resource will appear in input with *vf:accept* verb +* vf:pickup - transported resource or person enters the process; the same resource will appear in output with *vf:dropoff* +* vf:dropoff - transported resource or person leaves the process; the same resource or person appeared in input with vf:pickup +* vf:accept - in processes like repair or modification or testing, the same resource will appear in output with *vf:modify* +* vf:modify - in processes like repair or modification, the same resource will appear in input with *vf:accept* +* vf:pack - put a resource into a container resource; the container resource is input with *vf:accept* +* vf:unpack - remove a resource from a container resource; the container resource is input with *vf:accept* * vf:deliver-service - new service produced and delivered (a service implies that an agent actively receives the service) * vf:transfer-all-rights - give full (in the human realm) rights and responsibilities to another agent, without transferring physical custody * vf:transfer-custody - give physical custody and control of a resource, without full accounting or ownership rights * vf:transfer - give full rights and responsibilities plus physical custody * vf:move - change location and possibly identifier, if location is part of the identification, of a resource with no change of agent rights or possession * vf:raise - adjusts a quantity up based on a beginning balance or inventory count -* vf:lower - adjusts a quantity down based on a beginning balance or inventory count +* vf:lower - adjusts a quantity down based on an inventory count -Action | Accounting affect | Onhand affect | I/O | Changes existence | Pairs with | +Action | Accounting effect | Onhand effect | I/O | Other effect | Pairs with | ------ | ------ | --- | ----------------- | ---------- | --------- | -produce | Increment | Increment | Output | Yes | N/A | -consume | Decrement | Decrement | Input | Yes | N/A | -use | No effect(1) | No effect(1) | Input | No | N/A | +produce | Increment | Increment | Output | N/A | N/A | +consume | Decrement | Decrement | Input | N/A | N/A | +use | No effect(1) | No effect(1) | Input | N/A | N/A | work | No effect(1) | No effect(1) | Input | N/A | N/A | -cite | No effect | No effect | Input | No | N/A | -pickup | No effect | No effect | Input | No | dropoff | -dropoff | No effect | No effect | Output | No | pickup | -accept | No effect | Decrement | Input | No | modify | -modify | No effect | Increment | Output | No | accept | -deliver-service | No effect | No effect | Output(3) | No | N/A | -transfer-custody | No effect | Decr+Incr(2) | N/A | No | N/A | -transfer-all-rights | Decr+Incr(2) | No effect | N/A | No | N/A | -transfer | Decr+Incr(2) | Decr+Incr(2) | N/A | No | N/A | -move | Decr+Incr(2) |Decr+Incr(2) | N/A | No | N/A | -raise | Increment | Increment | N/A | No | N/A | -lower | Decrement | Decrement | N/A | No | N/A | +cite | No effect | No effect | Input | N/A | N/A | +deliver-service | No effect | No effect | Output(3) | N/A | N/A | +pickup | No effect | No effect | Input | N/A | dropoff | +dropoff | No effect | No effect | Output | currentLocation | pickup | +accept | No effect | Decrement | Input | N/A | modify | +modify | No effect | Increment | Output | N/A | accept | +pack | No effect | Decrement | Input | add containedIn | accept | +unpack | No effect | Increment | Output | remove containedIn | accept | +transfer-custody | No effect | Decr+Incr(2) | N/A | N/A | N/A | +transfer-all-rights | Decr+Incr(2) | No effect | N/A | N/A | N/A | +transfer | Decr+Incr(2) | Decr+Incr(2) | N/A | N/A | N/A | +move | Decr+Incr(2) |Decr+Incr(2) | N/A | currentLocation | N/A | +raise | Increment | Increment | N/A | N/A | N/A | +lower | Decrement | Decrement | N/A | N/A | N/A | We have defined a core set of actions, but expect that this will be extended with some others. If extended, they should be defined as part of this or another formal vocabulary so that all can use them and assume the same meaning. @@ -89,7 +93,7 @@ We have defined a core set of actions, but expect that this will be extended wit (2) The actions `transfer` and `move` can optionally define a second identified resource on the receiver side. -(3) The action `deliver-service` can sometimes also be an input to another process, at the same time as it is an output from a process. This is because services imply delivery as they are created. +(3) The action `deliver-service` can sometimes be an input to another process, at the same time as it is an output from a process. This is because services imply delivery as they are created. ### Quantities and Times diff --git a/examples/process-pack-unpack.yaml b/examples/process-pack-unpack.yaml @@ -0,0 +1,262 @@ +# Example: Simple pack and unpack processes + +'@context': + - https://git.io/vf-examples-jsonld-context + - med: https://medical.example/ + wash: https://laundry.example/ + +'@id': rgh:valueflows/valueflows/master/examples/process-pack-unpack.yaml +'@graph': + + # Economic resources before + + - '@id': med:e1721a61-cd47-4556-84b9-8b1b81da15bf + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q987767 # container + trackingIdentifier: cont234 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b9 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown789 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b0 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown734 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b1 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown698 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: + + # Packing process + + - '@id': med:02b39a30-3e04-4305-9656-7f261aa63c84 + '@type': Process + name: Pack medical gowns + note: Each gown is scanned for tracking identifier as packed + + - '@id': med:b52a5815-fae9-43bf-be95-833b95dc0adb + '@type': EconomicEvent + inputOf: med:02b39a30-3e04-4305-9656-7f261aa63c84 + action: accept + provider: https://medical.example/ + receiver: https://medical.example/ + resourceInventoriedAs: med:e1721a61-cd47-4556-84b9-8b1b81da15bf # a container + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + note: Container is empty at this point. + + - '@id': med:b90b0b77-09a2-42e2-8bd4-e9ae2c1c6172 + '@type': EconomicEvent + inputOf: med:02b39a30-3e04-4305-9656-7f261aa63c84 + action: pack + provider: https://medical.example/ + receiver: https://medical.example/ + resourceInventoriedAs: med:3129ca8b-fcda-45be-bbda-294dc924d3b9 # a medical gown + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': med:a8236bbb-81e0-422d-9861-56d2417db0fb + '@type': EconomicEvent + inputOf: med:02b39a30-3e04-4305-9656-7f261aa63c84 + action: pack + provider: https://medical.example/ + receiver: https://medical.example/ + resourceInventoriedAs: med:3129ca8b-fcda-45be-bbda-294dc924d3b0 # a medical gown + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': med:6f438393-7f87-4914-806c-e23a4fd15e89 + '@type': EconomicEvent + inputOf: med:02b39a30-3e04-4305-9656-7f261aa63c84 + action: pack + provider: https://medical.example/ + receiver: https://medical.example/ + resourceInventoriedAs: med:3129ca8b-fcda-45be-bbda-294dc924d3b1 # a medical gown + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': med:b52a5815-fae9-43bf-be95-833b95dc0adb + '@type': EconomicEvent + outputOf: med:02b39a30-3e04-4305-9656-7f261aa63c84 + action: modify + provider: https://medical.example/ + receiver: https://medical.example/ + resourceInventoriedAs: med:e1721a61-cd47-4556-84b9-8b1b81da15bf # a container + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + note: Container is full at this point. + + # Economic resources after packing + + - '@id': med:e1721a61-cd47-4556-84b9-8b1b81da15bf + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q987767 # container + trackingIdentifier: cont234 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b9 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown789 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: med:e1721a61-cd47-4556-84b9-8b1b81da15bf + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b0 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown734 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: med:e1721a61-cd47-4556-84b9-8b1b81da15bf + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b1 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown698 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: med:e1721a61-cd47-4556-84b9-8b1b81da15bf + + # The container is transferred to the laundry + + - '@id': med:b52a5815-fae9-43bf-be95-833berqojdasf7 + '@type': EconomicEvent + action: transfer-custody + provider: https://medical.example/ + receiver: https://laundry.example/ + resourceInventoriedAs: med:e1721a61-cd47-4556-84b9-8b1b81da15bf # the container + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + note: Container is all that is needed here. + + # The container is unpacked at the laundry + + - '@id': wash:8e5fe80d-a769-4bd5-89e5-2136d33eab9f + '@type': Process + name: Unpack medical gowns + note: Each gown is scanned for tracking identifier as unpacked + + - '@id': wash:33e8933b-ff73-4a01-964a-ca7a98893083 + '@type': EconomicEvent + inputOf: wash:8e5fe80d-a769-4bd5-89e5-2136d33eab9f + action: accept + provider: https://laundry.example/ + receiver: https://laundry.example/ + resourceInventoriedAs: med:e1721a61-cd47-4556-84b9-8b1b81da15bf # a container + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + note: Container is full at this point. + + - '@id': wash:60f4204e-b8d2-4026-8577-102c3f82c0af + '@type': EconomicEvent + outputOf: wash:33e8933b-ff73-4a01-964a-ca7a98893083 + action: modify + provider: https://laundry.example/ + receiver: https://laundry.example/ + resourceInventoriedAs: med:e1721a61-cd47-4556-84b9-8b1b81da15bf # a container + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + note: Container is full at this point. + + - '@id': wash:60f4204e-b8d2-4026-8577-102c3fkm98g1 + '@type': EconomicEvent + outputOf: wash:33e8933b-ff73-4a01-964a-ca7a98893083 + action: unpack + provider: https://laundry.example/ + receiver: https://laundry.example/ + resourceInventoriedAs: med:3129ca8b-fcda-45be-bbda-294dc924d3b9 # a medical gown + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': wash:60f4204e-b8d2-4026-8577-102c3fsd89cv + '@type': EconomicEvent + outputOf: wash:33e8933b-ff73-4a01-964a-ca7a98893083 + action: unpack + provider: https://laundry.example/ + receiver: https://laundry.example/ + resourceInventoriedAs: med:3129ca8b-fcda-45be-bbda-294dc924d3b0 # a medical gown + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': wash:60f4204e-b8d2-4026-8577-102c3fd9kjre + '@type': EconomicEvent + outputOf: wash:33e8933b-ff73-4a01-964a-ca7a98893083 + action: unpack + provider: https://laundry.example/ + receiver: https://laundry.example/ + resourceInventoriedAs: med:3129ca8b-fcda-45be-bbda-294dc924d3b1 # a medical gown + resourceQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + # Economic resources after unpacking + + - '@id': med:e1721a61-cd47-4556-84b9-8b1b81da15bf + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q987767 # container + trackingIdentifier: cont234 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b9 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown789 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b0 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown734 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: + + - '@id': med:3129ca8b-fcda-45be-bbda-294dc924d3b1 + '@type': EconomicResource + conformsTo: https://www.wikidata.org/wiki/Q89990310 # medical gown + trackingIdentifier: gown698 + accountingQuantity: + om2:hasUnit: om2:one + om2:hasNumericalValue: 1 + containedIn: + diff --git a/release-doc-in-process/pack-unpack.png b/release-doc-in-process/pack-unpack.png Binary files differ. diff --git a/release-doc-in-process/pack-unpack.xml b/release-doc-in-process/pack-unpack.xml @@ -0,0 +1,220 @@ +<mxfile modified="2021-09-11T21:31:45.817Z" host="app.diagrams.net" agent="5.0 (X11)" etag="SkwWWuMzp-kIPw2nTat7" compressed="false" version="15.1.0" type="device"> + <diagram id="mfRQpddUL4VJJqIOGON4" name="Page-1"> + <mxGraphModel dx="888" dy="-2749" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=none;align=left;verticalAlign=bottom;" parent="1" vertex="1"> + <mxGeometry x="40" y="3520" width="610" height="460" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-47" value="&lt;div&gt;Pack gowns&lt;/div&gt;&lt;div&gt; into container&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="295" y="3540" width="91" height="50" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-48" value="accept" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="172.5" y="3544.5" width="102" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-49" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-47" target="AsW6Mflo5E22olPenWJg-50"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="581" y="3495" as="sourcePoint" /> + <mxPoint x="594.5" y="3543" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-50" value="modify" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="406" y="3545" width="97" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-51" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-48" target="AsW6Mflo5E22olPenWJg-47"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="508" y="3729" as="sourcePoint" /> + <mxPoint x="558" y="3679" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-52" value="container 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="532.5" y="3544.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-53" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-50" target="AsW6Mflo5E22olPenWJg-52"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="513.5" y="3564.5" as="sourcePoint" /> + <mxPoint x="572.5" y="3684" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-54" value="container 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="57.5" y="3545" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-55" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-54"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-69.5" y="3598.5" as="sourcePoint" /> + <mxPoint x="172.5" y="3565" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-56" value="pack" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="172" y="3590" width="102" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-57" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.055;entryY=0.8;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-56" target="AsW6Mflo5E22olPenWJg-47"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="507.5" y="3774.5" as="sourcePoint" /> + <mxPoint x="294.5" y="3610.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-58" value="medical gown 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="57" y="3590.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-59" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-58"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-70" y="3644" as="sourcePoint" /> + <mxPoint x="172" y="3610.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-60" value="pack" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="172" y="3682" width="102" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-61" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.253;entryY=0.98;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-60" target="AsW6Mflo5E22olPenWJg-47"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="507.5" y="3866.5" as="sourcePoint" /> + <mxPoint x="300.0050000000001" y="3672" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-62" value="medical gown 3" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="57" y="3682.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-63" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-62" target="AsW6Mflo5E22olPenWJg-60"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-60" y="3654" as="sourcePoint" /> + <mxPoint x="182" y="3620.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-64" value="pack" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="172.5" y="3636" width="102" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-65" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-64" target="AsW6Mflo5E22olPenWJg-47"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="508" y="3820.5" as="sourcePoint" /> + <mxPoint x="300.5050000000001" y="3626" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-67" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-80"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="150" y="3656.5" as="sourcePoint" /> + <mxPoint x="172.5" y="3656.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-80" value="medical gown 2" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="57" y="3636" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-81" value="transfer-custody" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="289.38" y="3740" width="102" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-82" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-81"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="624.88" y="3924.5" as="sourcePoint" /> + <mxPoint x="411.88" y="3760.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-83" value="container 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="174.38" y="3740.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-84" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-83"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="47.379999999999995" y="3794" as="sourcePoint" /> + <mxPoint x="289.38" y="3760.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-85" value="container 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="411" y="3740.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-86" value="&lt;div&gt;Unpack gowns&lt;/div&gt;&lt;div&gt;&amp;nbsp;from container&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="295.5" y="3790" width="91" height="50" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-87" value="accept" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="173" y="3794.5" width="102" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-88" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-86" target="AsW6Mflo5E22olPenWJg-89"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="581.5" y="3745" as="sourcePoint" /> + <mxPoint x="595" y="3793" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-89" value="modify" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="406.5" y="3795" width="97" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-90" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-87" target="AsW6Mflo5E22olPenWJg-86"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="508.49999999999994" y="3979" as="sourcePoint" /> + <mxPoint x="558.5" y="3929" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-91" value="container 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="533" y="3794.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-92" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-89" target="AsW6Mflo5E22olPenWJg-91"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="514" y="3814.5" as="sourcePoint" /> + <mxPoint x="573" y="3934" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-93" value="container 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="58" y="3795" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-94" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-93"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-69" y="3848.5" as="sourcePoint" /> + <mxPoint x="173" y="3815" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-106" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.967;exitY=0.72;exitDx=0;exitDy=0;endFill=1;exitPerimeter=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-86" target="AsW6Mflo5E22olPenWJg-107"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="386.75" y="3860" as="sourcePoint" /> + <mxPoint x="595.25" y="3838" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-107" value="unpack" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="406.75" y="3840" width="97" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-108" value="medical gown 1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="533.25" y="3839.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-109" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-107" target="AsW6Mflo5E22olPenWJg-108"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="514.25" y="3859.5" as="sourcePoint" /> + <mxPoint x="573.25" y="3979" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-110" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=1;exitDx=0;exitDy=0;endFill=1;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-86" target="AsW6Mflo5E22olPenWJg-111"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="384.12700000000007" y="3872" as="sourcePoint" /> + <mxPoint x="595.88" y="3884" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-111" value="unpack" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="407.38" y="3886" width="97" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-112" value="medical gown 2" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="533.88" y="3885.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-113" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-111" target="AsW6Mflo5E22olPenWJg-112"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="514.88" y="3905.5" as="sourcePoint" /> + <mxPoint x="573.88" y="4025" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-114" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.78;exitY=0.92;exitDx=0;exitDy=0;endFill=1;exitPerimeter=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-86" target="AsW6Mflo5E22olPenWJg-115"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="384.12700000000007" y="3918" as="sourcePoint" /> + <mxPoint x="595.88" y="3930" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-115" value="unpack" style="shape=delay;whiteSpace=wrap;html=1;rounded=0;glass=1;comic=0;" vertex="1" parent="1"> + <mxGeometry x="407.38" y="3932" width="97" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-116" value="medical gown 3" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="533.88" y="3931.5" width="90" height="40" as="geometry" /> + </mxCell> + <mxCell id="AsW6Mflo5E22olPenWJg-117" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="AsW6Mflo5E22olPenWJg-115" target="AsW6Mflo5E22olPenWJg-116"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="514.88" y="3951.5" as="sourcePoint" /> + <mxPoint x="573.88" y="4071" as="targetPoint" /> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile>