diff --git a/.ci/asciidoc-converter/.gitignore b/.ci/asciidoc-converter/.gitignore index 0b3e3742..d5fba64c 100644 --- a/.ci/asciidoc-converter/.gitignore +++ b/.ci/asciidoc-converter/.gitignore @@ -5,6 +5,8 @@ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 +images + # User-specific stuff .idea/**/workspace.xml .idea/**/tasks.xml @@ -134,4 +136,5 @@ gradle-app.setting ### Gradle Patch ### **/build/ -# End of https://www.toptal.com/developers/gitignore/api/kotlin,gradle,intellij+all \ No newline at end of file +# End of https://www.toptal.com/developers/gitignore/api/kotlin,gradle,intellij+all +/sdpi-supplement/ diff --git a/.ci/asciidoc-converter/images/target=puml-sdpi-p-managed-discovery-option-sequence-diagram.svg b/.ci/asciidoc-converter/images/target=puml-sdpi-p-managed-discovery-option-sequence-diagram.svg deleted file mode 100644 index 19e7cc68..00000000 --- a/.ci/asciidoc-converter/images/target=puml-sdpi-p-managed-discovery-option-sequence-diagram.svg +++ /dev/null @@ -1 +0,0 @@ -SOMDS ProviderSOMDS ProviderDiscovery ProxyDiscovery ProxySOMDS ConsumerSOMDS ConsumerSDPi-P Managed Discovery Optionsecured1Update Network Presencesecured2Retrieve Network Presence3Return Network Presencesecured4Discover BICEPS Services5 Normal SDPi-P CONSUMER / PROVIDER Interactions \ No newline at end of file diff --git a/.gitignore b/.gitignore index db2062ea..6bda53d6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ puml-*.svg *.pdf *.html .asciidoctor +sdpi-supplement \ No newline at end of file diff --git a/asciidoc/docinfo.html b/asciidoc/docinfo.html index e86b38f9..8d6b5ef8 100644 --- a/asciidoc/docinfo.html +++ b/asciidoc/docinfo.html @@ -175,7 +175,7 @@ } } - // enable collapsible toc + // enable collapsible toc - function is called once the DOM is ready $(function () { // Add a new container for the tocify toc into the existing toc so we can re-use its // styling @@ -218,6 +218,14 @@ $(window).resize(handleTocOnResize); handleTocOnResize(); + + // Perform minimal scrolling to let the toc collapse + // Alternative available? + const thisPage = new URL(window.location.href); + if (thisPage.hash === "") { + window.scrollTo(0, 1); + window.scrollTo(0, 0); + } }); // Set up before/after handlers diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-changesequencereport.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-changesequencereport.xml new file mode 100644 index 00000000..7d7184ba --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-changesequencereport.xml @@ -0,0 +1,44 @@ + + + + urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1.2 + urn:uuid:6df65470-5b50-11ed-9b6a-0242ac120000 + https://127.0.0.1:6464/EventSink/NotifyTo/56db24f3-b210-40d6-9579-6dd750b1a01a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-00.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-00.xml new file mode 100644 index 00000000..5f33fe38 --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-00.xml @@ -0,0 +1,32 @@ + + + + http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe + urn:uuid:3439ded1-12b3-46a4-9d81-a16e8ff1b7c1 + + + + + https://127.0.0.1:6464/EventSink/EndTo/56db24f3-b210-40d6-9579-6dd750b1a01a + + + + https://127.0.0.1:6464/EventSink/NotifyTo/56db24f3-b210-40d6-9579-6dd750b1a01a + + + + + true + + + + + + + + diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-01.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-01.xml new file mode 100644 index 00000000..a230d382 --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-01.xml @@ -0,0 +1,19 @@ + + + + http://schemas.xmlsoap.org/ws/2004/08/eventing/SubscribeResponse + urn:uuid:4e9289bd-1014-42ea-b871-9e629f0c1e24 + urn:uuid:3439ded1-12b3-46a4-9d81-a16e8ff1b7c1 + + + + + https://127.0.0.1:6464/d431eed8-1e29-41df-a99a-7f1a47638a95/SubscriptionManager + + + + diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-02.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-02.xml new file mode 100644 index 00000000..c81ba389 --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-02.xml @@ -0,0 +1,36 @@ + + + + urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1.2 + urn:uuid:6df65470-5b50-11ed-9b6a-0242ac120000 + https://127.0.0.1:6464/EventSink/NotifyTo/56db24f3-b210-40d6-9579-6dd750b1a01a + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-03.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-03.xml new file mode 100644 index 00000000..5a462e59 --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-03.xml @@ -0,0 +1,34 @@ + + + + urn:oid:1.3.6.1.4.1.3592.2.6934.1.1.1 + urn:uuid:6df65470-5b50-11ed-9b6a-0242ac120001 + https://127.0.0.1:6464/EventSink/NotifyTo/56db24f3-b210-40d6-9579-6dd750b1a01a + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-04.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-04.xml new file mode 100644 index 00000000..9c0e260e --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-04.xml @@ -0,0 +1,15 @@ + + + + urn:oid:1.3.6.1.4.1.3592.2.6934.1.1.1 + urn:uuid:6df655f6-5b50-11ed-9b6a-0242ac120002 + https://127.0.0.1:6464/EventSink/NotifyTo/56db24f3-b210-40d6-9579-6dd750b1a01a + + + + + diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-05.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-05.xml new file mode 100644 index 00000000..d877f764 --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-example-05.xml @@ -0,0 +1,20 @@ + + + + http://schemas.xmlsoap.org/ws/2004/08/eventing/SubscriptionEnd + urn:uuid:5f089db4-ecdc-4e1d-879d-de59d53e709b + + + + + https://127.0.0.1:6464/d431eed8-1e29-41df-a99a-7f1a47638a95/SubscriptionManager + + http://schemas.xmlsoap.org/ws/2004/08/eventing/SourceCancelling + Historic data delivery has finished. + + + diff --git a/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-subscribe.xml b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-subscribe.xml new file mode 100644 index 00000000..1686d845 --- /dev/null +++ b/asciidoc/listings/vol2-clause-appendix-a-mdpws-dev-32-subscribe.xml @@ -0,0 +1,35 @@ + + + + http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe + + + + + + + + + + + + + + + ... + + + + + + + + diff --git a/asciidoc/plantuml/vol2-figure-dev-32-sequence.puml b/asciidoc/plantuml/vol2-figure-dev-32-sequence.puml new file mode 100644 index 00000000..4a1357ad --- /dev/null +++ b/asciidoc/plantuml/vol2-figure-dev-32-sequence.puml @@ -0,0 +1,22 @@ +@startuml + +!include plantuml/common_style.inc.puml +autonumber + +!global $str_somds_consumer = "SOMDS Consumer" +!global $str_somds_provider = "SOMDS Provider" + +participant "$str_somds_consumer" as consumer +participant "$str_somds_provider" as provider + +==Retrieve Archive Data [DEV-32]== + +consumer -> provider: Subscribe(Filter) + +loop +consumer <<-- provider: ChangeSequenceReport([LocalizedTexts], [InitialMdib], [Reports]) +end + +consumer <-- provider: SubscriptionEnd + +@enduml \ No newline at end of file diff --git a/asciidoc/plantuml/vol2-figure-dev-32-usecase-one-sequence-id.puml b/asciidoc/plantuml/vol2-figure-dev-32-usecase-one-sequence-id.puml new file mode 100644 index 00000000..04711119 --- /dev/null +++ b/asciidoc/plantuml/vol2-figure-dev-32-usecase-one-sequence-id.puml @@ -0,0 +1,73 @@ +@startuml +'https://plantuml.com/sequence-diagram + +!include plantuml/common_style.inc.puml +autonumber + +!global $str_somds_consumer = "SOMDS Consumer" +!global $str_somds_provider = "SOMDS Provider" + +participant "$str_somds_consumer" as Consumer +participant "$str_somds_provider" as Provider + +== Localized texts and MDIB in first notification == + +Consumer -> Provider: Subscribe(Filter=HistoryQuery(@StartTime=tStart, @EndTime=tEnd), ...) +Consumer <- Provider: SubscribeResponse(...) + +Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, LocalizedText*, HistoricMdib(@Time=t<=tStart), HistoricReport(@Time=tn>t)*)) +loop until no more reports exist for @SequenceId=X + alt Not last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=false, ChangeSequence(@SequenceId=X, Report(@Time=tm>max(tn))*)) + else Last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=true, ChangeSequence(@SequenceId=X, Report(@Time=tm>max(tn))*)) + end +end + +Consumer <-- Provider: SubscriptionEnd(SourceCancelling) + +== Localized texts and MDIB split up == + +Consumer -> Provider: Subscribe(Filter=HistoryQuery(@StartTime=tStart, @EndTime=tEnd), ...) +Consumer <- Provider: SubscribeResponse(...) + +loop until no more localized texts exist for @SequenceId=X + Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, LocalizedText*)) +end + +Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, HistoricMdib(@Time=t<=tStart), HistoricReport(@Time=tn>t)*)) + +loop until no more reports exist for @SequenceId=X + alt Not last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=false, ChangeSequence(@SequenceId=X, HistoricReport(@Time=tm>max(tn))*)) + else Last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=true, ChangeSequence(@SequenceId=X, HistoricReport(@Time=tm>max(tn))*)) + end +end + +Consumer <-- Provider: SubscriptionEnd(SourceCancelling) + +== Localized texts, MDIB and reports split up == + +Consumer -> Provider: Subscribe(Filter=HistoryQuery(@StartTime=tStart, @EndTime=tEnd), ...) +Consumer <- Provider: SubscribeResponse(...) + +loop until no more localized texts exist for @SequenceId=X + Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, LocalizedText*)) +end + +Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, HistoricMdib(@Time=t<=tStart)) + +loop until no more reports exist for @SequenceId=X + alt Not last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=false, ChangeSequence(@SequenceId=X, HistoricReport(@Time=tn>t)*)) + else Last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=true, ChangeSequence(@SequenceId=X, HistoricReport(@Time=tn>t)*)) + end +end + +opt + Consumer <-- Provider: SubscriptionEnd(SourceCancelling) +end + +@enduml \ No newline at end of file diff --git a/asciidoc/plantuml/vol2-figure-dev-32-usecase-two-sequence-ids.puml b/asciidoc/plantuml/vol2-figure-dev-32-usecase-two-sequence-ids.puml new file mode 100644 index 00000000..6a214150 --- /dev/null +++ b/asciidoc/plantuml/vol2-figure-dev-32-usecase-two-sequence-ids.puml @@ -0,0 +1,43 @@ +@startuml +'https://plantuml.com/sequence-diagram + +!include plantuml/common_style.inc.puml +autonumber + +!global $str_somds_consumer = "SOMDS Consumer" +!global $str_somds_provider = "SOMDS Provider" + +participant "$str_somds_consumer" as Consumer +participant "$str_somds_provider" as Provider + +Consumer -> Provider: Subscribe(Filter=HistoryQuery(@StartTime=tStart, @EndTime=tEnd), ...) +Consumer <- Provider: SubscribeResponse(...) + +loop until no more localized texts exist for @SequenceId=X + Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, LocalizedText*)) +end + +Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, HistoricMdib(@Time=t1<=tStart)) + +loop until no more reports exist for @SequenceId=X + Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, HistoricReport(@Time=tn>t1)*)) +end + +loop until no more localized texts exist for @SequenceId=Y + Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=Y, LocalizedText*)) +end + +Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=Y, HistoricMdib(@Time=t2>max(tn))) + +loop until no more reports exist for @SequenceId=X + alt Not last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=false, ChangeSequence(@SequenceId=Y, HistoricReport(@Time=tm>t2)*)) + else Last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=true, ChangeSequence(@SequenceId=Y, HistoricReport(@Time=tm>t2)*)) + end +end + +opt + Consumer <-- Provider: SubscriptionEnd(SourceCancelling) +end +@enduml \ No newline at end of file diff --git a/asciidoc/plantuml/vol2-figure-dev-32-usecase-version-range.puml b/asciidoc/plantuml/vol2-figure-dev-32-usecase-version-range.puml new file mode 100644 index 00000000..0c0e0d8b --- /dev/null +++ b/asciidoc/plantuml/vol2-figure-dev-32-usecase-version-range.puml @@ -0,0 +1,29 @@ +@startuml +'https://plantuml.com/sequence-diagram + +!include plantuml/common_style.inc.puml +autonumber + +!global $str_somds_consumer = "SOMDS Consumer" +!global $str_somds_provider = "SOMDS Provider" + +participant "$str_somds_consumer" as Consumer +participant "$str_somds_provider" as Provider + +Consumer -> Provider: Subscribe(Filter=HistoryQuery(@StartVersion=vStart, @EndVersion=vEnd), ...) +Consumer <- Provider: SubscribeResponse(...) + +Consumer <-- Provider: ChangeSequenceReport(ChangeSequence(@SequenceId=X, Mdib, Report*)) +loop until no more reports exist for @SequenceId=X + alt Not last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=true, ChangeSequence(@SequenceId=X, Report*)) + else Last iteration + Consumer <-- Provider: ChangeSequenceReport(@LastReport=true, ChangeSequence(@SequenceId=X, Report*)) + end +end + +opt + Consumer <-- Provider: SubscriptionEnd(SourceCancelling) +end + +@enduml \ No newline at end of file diff --git a/asciidoc/sdpi-supplement.adoc b/asciidoc/sdpi-supplement.adoc index e23db254..243a2e24 100644 --- a/asciidoc/sdpi-supplement.adoc +++ b/asciidoc/sdpi-supplement.adoc @@ -82,7 +82,7 @@ endif::[] See https://profiles.ihe.net/DEV/[*HERE*] for STU/Trial Implementation and Final Text versions and https://profiles.ihe.net/DEV/#1.2[*HERE*] for Public Comment versions. ifeval::["{backend}" == "html5"] -//A PDF version of the specification is available upon request. +A PDF version of the specification is available upon request. endif::[] [#supplement_clause_foreword,sdpi_offset=clear] diff --git a/asciidoc/volume0/tf0-ch-b-transactions.adoc b/asciidoc/volume0/tf0-ch-b-transactions.adoc index 781a5109..5716590b 100644 --- a/asciidoc/volume0/tf0-ch-b-transactions.adoc +++ b/asciidoc/volume0/tf0-ch-b-transactions.adoc @@ -15,161 +15,136 @@ //// -[cols="^1,^2,3"] +[cols="1,2,3"] |=== |New Transaction Number |New Transaction Name |Definition -.^| [[vol0_transaction_summary_dev_23,DEV-23 Announce Network Presence]] -[[transaction_number_dev_23,DEV-23]] DEV-23 +| [[vol0_transaction_summary_dev_23,DEV-23 Announce Network Presence]] DEV-23 | [[transaction_name_announce_network_presence,Announce Network Presence]] Announce Network Presence | include::../volume2/dev-23/tf2-dev-23-summary.adoc[] -.^| [[vol0_transaction_summary_dev_24,DEV-24 Discover Network Topology]] -[[transaction_number_dev_24,DEV-24]] DEV-24 +| [[vol0_transaction_summary_dev_24,DEV-24 Discover Network Topology]] DEV-24 | [[transaction_name_discover_network_topology,Discover Network Topology]] Discover Network Topology | include::../volume2/dev-24/tf2-dev-24-summary.adoc[] -.^| [[vol0_transaction_summary_dev_25,DEV-25 Discover BICEPS Services]] -[[transaction_number_dev_25,DEV-25]] DEV-25 +| [[vol0_transaction_summary_dev_25,DEV-25 Discover BICEPS Services]] DEV-25 | [[transaction_name_discover_biceps_services,Discover BICEPS Services]] Discover BICEPS Services | include::../volume2/dev-25/tf2-dev-25-summary.adoc[] -.^| [[vol0_transaction_summary_dev_26,DEV-26 Discover System Context and Capabilities]] -[[transaction_number_dev_26,DEV-26]] DEV-26 +| [[vol0_transaction_summary_dev_26,DEV-26 Discover System Context and Capabilities]] DEV-26 | [[transaction_name_discover_system_context_and_capabilities,Discover System Context and Capabilities]] Discover System Context and Capabilities | Deferred to a future version of SDPi // include::../volume2/dev-26/tf2-dev-26-summary.adoc[] -.^| [[vol0_transaction_summary_dev_27,DEV-27 Manage BICEPS Subscription]] -[[transaction_number_dev_27,DEV-27]] DEV-27 +| [[vol0_transaction_summary_dev_27,DEV-27 Manage BICEPS Subscription]] DEV-27 | [[transaction_name_manage_biceps_subscription,Manage BICEPS Subscription]] Manage BICEPS Subscription | include::../volume2/dev-27/tf2-dev-27-summary.adoc[] -.^| [[vol0_transaction_summary_dev_28,DEV-28 Notify Change in System Context and Capabilities]] -[[transaction_number_dev_28,DEV-28]] DEV-28 +| [[vol0_transaction_summary_dev_28,DEV-28 Notify Change in System Context and Capabilities]] DEV-28 | [[transaction_name_notify_change_in_system_context_and_capabilities,Notify Change in System Context and Capabilities]] Notify Change in System Context and Capabilities | include::../volume2/dev-28/tf2-dev-28-summary.adoc[] -.^| [[vol0_transaction_summary_dev_29,DEV-29 Publish BICEPS Update Reports]] -[[transaction_number_dev_29,DEV-29]] DEV-29 +| [[vol0_transaction_summary_dev_29,DEV-29 Publish BICEPS Update Reports]] DEV-29 | [[transaction_name_publish_biceps_update_reports,Publish BICEPS Update Reports]] Publish BICEPS Update Reports | include::../volume2/dev-29/tf2-dev-29-summary.adoc[] -.^| [[vol0_transaction_summary_dev_30,DEV-30 Retrieve BICEPS Content]] -[[transaction_number_dev_30,DEV-30]] DEV-30 +| [[vol0_transaction_summary_dev_30,DEV-30 Retrieve BICEPS Content]] DEV-30 | [[transaction_name_retrieve_biceps_content,Retrieve BICEPS Content]] Retrieve BICEPS Content | include::../volume2/dev-30/tf2-dev-30-summary.adoc[] -.^| [[vol0_transaction_summary_dev_31,DEV-31 Set Provider State]] -[[transaction_number_dev_31,DEV-31]] DEV-31 +| [[vol0_transaction_summary_dev_31,DEV-31 Set Provider State]] DEV-31 | [[transaction_name_set_provider_state,Set Provider State]] Set Provider State | Deferred to a future version of SDPi // include::../volume2/dev-31/tf2-dev-31-summary.adoc[] -.^| [[vol0_transaction_summary_dev_32,DEV-32 Retrieve Archive Data]] -[[transaction_number_dev_30,DEV-32]] DEV-32 +| [[vol0_transaction_summary_dev_32,DEV-32 Retrieve Archive Data]] DEV-32 | [[transaction_name_retrieve_archive_data,Retrieve Archive Data]] Retrieve Archive Data -| Deferred to a future version of SDPi -// include::../volume2/dev-32/tf2-dev-32-summary.adoc[] -.^| [[vol0_transaction_summary_dev_33,DEV-33 Retrieve Localization Information]] -[[transaction_number_dev_33,DEV-33]] DEV-33 +| +include::../volume2/dev-32/tf2-dev-32-summary.adoc[] +| [[vol0_transaction_summary_dev_33,DEV-33 Retrieve Localization Information]] DEV-33 | [[transaction_name_retrieve_localization_information,Retrieve Localization Information]] Retrieve Localization Information | include::../volume2/dev-33/tf2-dev-33-summary.adoc[] -//.^| [[vol0_transaction_summary_dev_34,DEV-34 Announce Network Departure]] -//[[transaction_number_dev_34,DEV-34]] DEV-34 +//| [[vol0_transaction_summary_dev_34,DEV-34 Announce Network Departure]] DEV-34 //| [[transaction_name_announce_network_departure,Announce Network Departure]] Announce Network Departure //| //include::../volume2/dev-34/tf2-dev-34-summary.adoc[] -.^| DEV-34 | _Reserved_ | +| DEV-34 | _Reserved_ | //include::../volume2/dev-34/tf2-dev-34-summary.adoc[] -.^| [[vol0_transaction_summary_dev_35,DEV-35 Establish Medical Data Exchange]] -[[transaction_number_dev_35,DEV-35]] DEV-35 +| [[vol0_transaction_summary_dev_35,DEV-35 Establish Medical Data Exchange]] DEV-35 | [[transaction_name_establish_medical_data_exchange,Establish Medical Data Exchange]] Establish Medical Data Exchange | include::../volume2/dev-35/tf2-dev-35-summary.adoc[] -.^| [[vol0_transaction_summary_dev_36,DEV-36 Publish Medical Data]] -[[transaction_number_dev_36,DEV-36]] DEV-36 +| [[vol0_transaction_summary_dev_36,DEV-36 Publish Medical Data]] DEV-36 | [[transaction_name_publish_medical_data,Publish Medical Data]] Publish Medical Data | include::../volume2/dev-36/tf2-dev-36-summary.adoc[] -.^| [[vol0_transaction_summary_dev_37,DEV-37 Retrieve Medical Data]] -[[transaction_number_dev_37,DEV-37]] DEV-37 +| [[vol0_transaction_summary_dev_37,DEV-37 Retrieve Medical Data]] DEV-37 | [[transaction_name_retrieve_medical_data,Retrieve Medical Data]] Retrieve Medical Data | include::../volume2/dev-37/tf2-dev-37-summary.adoc[] -.^| [[vol0_transaction_summary_dev_38,DEV-38 Establish Medical Alert Exchange]] -[[transaction_number_dev_38,DEV-38]] DEV-38 +| [[vol0_transaction_summary_dev_38,DEV-38 Establish Medical Alert Exchange]] DEV-38 | [[transaction_name_establish_medical_alert_exchange,Establish Medical Alert Exchange]] Establish Medical Alert Exchange | include::../volume2/dev-38/tf2-dev-38-summary.adoc[] -.^| [[vol0_transaction_summary_dev_39,DEV-39 Publish Medical Alert Update]] -[[transaction_number_dev_39,DEV-39]] DEV-39 +| [[vol0_transaction_summary_dev_39,DEV-39 Publish Medical Alert Update]] DEV-39 | [[transaction_name_publish_medical_alert_update,Publish Medical Alert Update]] Publish Medical Alert Update | include::../volume2/dev-39/tf2-dev-39-summary.adoc[] -.^| [[vol0_transaction_summary_dev_40,DEV-40 Retrieve Medical Alert Status]] -[[transaction_number_dev_40,DEV-40]] DEV-40 +| [[vol0_transaction_summary_dev_40,DEV-40 Retrieve Medical Alert Status]] DEV-40 | [[transaction_name_retrieve_medical_alert_status,Retrieve Medical Alert Status]] Retrieve Medical Alert Status | include::../volume2/dev-40/tf2-dev-40-summary.adoc[] -.^| [[vol0_transaction_summary_dev_41,DEV-41 Manage Medical Alert Delegation]] -[[transaction_number_dev_41,DEV-41]] DEV-41 +| [[vol0_transaction_summary_dev_41,DEV-41 Manage Medical Alert Delegation]] DEV-41 | [[transaction_name_manage_medical_alert_delegation,Manage Medical Alert Delegation]] Manage Medical Alert Delegation | Deferred to a future version of SDPi // include::../volume2/dev-41/tf2-dev-41-summary.adoc[] -.^| [[vol0_transaction_summary_dev_42,DEV-42 Delegate Medical Alert]] -[[transaction_number_dev_42,DEV-42]] DEV-42 +| [[vol0_transaction_summary_dev_42,DEV-42 Delegate Medical Alert]] DEV-42 | [[transaction_name_delegate_medical_alert,Delegate Medical Alert]] Delegate Medical Alert | Deferred to a future version of SDPi // include::../volume2/dev-42/tf2-dev-42-summary.adoc[] -.^| [[vol0_transaction_summary_dev_43,DEV-43 Update Alert Acknowledgement Status]] -[[transaction_number_dev_43,DEV-43]] DEV-43 +| [[vol0_transaction_summary_dev_43,DEV-43 Update Alert Acknowledgement Status]] DEV-43 | [[transaction_name_update_alert_acknowledgement_status,Update Alert Acknowledgement Status]] Update Alert Acknowledgement Status | Deferred to a future version of SDPi // include::../volume2/dev-43/tf2-dev-43-summary.adoc[] -.^| [[vol0_transaction_summary_dev_44,DEV-44 Manage Medical External Control]] -[[transaction_number_dev_44,DEV-44]] DEV-44 +| [[vol0_transaction_summary_dev_44,DEV-44 Manage Medical External Control]] DEV-44 | [[transaction_name_manage_medical_external_control,Manage Medical External Control]] Manage Medical External Control | Deferred to a future version of SDPi // include::../volume2/dev-44/tf2-dev-44-summary.adoc[] -.^| [[vol0_transaction_summary_dev_45,DEV-45 Invoke Medical Control Services]] -[[transaction_number_dev_45,DEV-45]] DEV-45 +| [[vol0_transaction_summary_dev_45,DEV-45 Invoke Medical Control Services]] DEV-45 | [[transaction_name_invoke_medical_control_services,Invoke Medical Control Services]] Invoke Medical Control Services | Deferred to a future version of SDPi // include::../volume2/dev-45/tf2-dev-45-summary.adoc[] -.^| [[vol0_transaction_summary_dev_46,DEV-46 Update Network Presence]] -[[transaction_number_dev_46,DEV-46]] DEV-46 +| [[vol0_transaction_summary_dev_46,DEV-46 Update Network Presence]] DEV-46 | [[transaction_name_update_network_presence,Update Network Presence]] Update Network Presence | include::../volume2/dev-46/tf2-dev-46-summary.adoc[] -.^| [[vol0_transaction_summary_dev_47,DEV-47 Retrieve Network Presence]] -[[transaction_number_dev_47,DEV-47]] DEV-47 +| [[vol0_transaction_summary_dev_47,DEV-47 Retrieve Network Presence]] DEV-47 | [[transaction_name_retrieve_network_presence,Retrieve Network Presence]] Retrieve Network Presence | include::../volume2/dev-47/tf2-dev-47-summary.adoc[] -.^| DEV-48 | _Reserved_ | -.^| DEV-49 | _Reserved_ | -.^| DEV-50 | _Reserved_ | +| DEV-48 | _Reserved_ | +| DEV-49 | _Reserved_ | +| DEV-50 | _Reserved_ | |=== diff --git a/asciidoc/volume0/tf0-ch-d-glossary.adoc b/asciidoc/volume0/tf0-ch-d-glossary.adoc index 31ac756b..e876285e 100644 --- a/asciidoc/volume0/tf0-ch-d-glossary.adoc +++ b/asciidoc/volume0/tf0-ch-d-glossary.adoc @@ -126,6 +126,20 @@ | https://www.hl7.org/about/index.cfm?ref=nav[About -- HL7] | Organization +| [[term_historic_localized_text, Historic Localized Text]] Historic Localized Text +| A pm:LocalizedText element that was referenced from within a pm:Mdib or msg:AbstractReport in an MDIB Sequence of Changes +| +| +| +| SDC + +| [[term_history_service, History Service]] History Service +| A service to access historical <> data by means of an initial <> and subsequent change reports. The History Service replaces the ARCHIVE SERVICE specified in <> and is used to implement <>. +| +| +| +| SDC + | [[term_implementation_conformance_statement,Implementation Conformance Statement (ICS)]] Implementation Conformance Statement | A clause in many standards that specifies how conformance claims to that standard should be formalized, including identification of any deviations, extensions and option selection. | @@ -190,6 +204,20 @@ | <> | SDC +| [[term_mdib_configuration, MDIB Configuration]] MDIB Configuration +| <> that describes the state of a <> at a specific MDIB version. +| +| +| +| SDC + +| [[term_mdib_sequence_of_changes, MDIB Sequence of Changes]] MDIB Sequence of Changes +| <> changes within a particular pm:Mdib/@SequenceId and pm:Mdib/@InstanceId (if present) that is requested from a <>. +| +| +| +| SDC + | [[term_medical_device,Medical Device (MD)]] Medical Device | A device that is used to diagnose, monitor and treat disease. Formal definitions may vary per legal jurisdictions; however, the international, harmonized (and *_very lengthy_*) definition is available from the <> web site. | diff --git a/asciidoc/volume0/tf0-main.adoc b/asciidoc/volume0/tf0-main.adoc index 76b0cbc3..394c4a4e 100644 --- a/asciidoc/volume0/tf0-main.adoc +++ b/asciidoc/volume0/tf0-main.adoc @@ -36,10 +36,6 @@ The choice of any namespace prefix is arbitrary and not semantically significant |=== |Prefix |XML Namespace |Specification -|dpws -|http://docs.oasis-open.org/ws-dd/ns/dpws/2009/01 -|<> - |sdpi |urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.1.1 |This specification, used by <> extensions. @@ -48,6 +44,18 @@ The choice of any namespace prefix is arbitrary and not semantically significant |urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.2.2 |This specification, used by the <> actor. +|dpws +|http://docs.oasis-open.org/ws-dd/ns/dpws/2009/01 +|<> + +|hs +|urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1 +|This specification, used by service specification of the <>. + +|hm +|urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.2 +|This specification, used by model specification of the <>. + |wsa |http://www.w3.org/2005/08/addressing |<> diff --git a/asciidoc/volume1/tf1-ch-a-requirements-interoperability.adoc b/asciidoc/volume1/tf1-ch-a-requirements-interoperability.adoc index b5aea32e..ecca8fc6 100644 --- a/asciidoc/volume1/tf1-ch-a-requirements-interoperability.adoc +++ b/asciidoc/volume1/tf1-ch-a-requirements-interoperability.adoc @@ -149,7 +149,7 @@ Ultimately, the AsciiDoc and related information that is used for specification As pointed out above, requirements interoperability (RI) based on robust model-based metadata is a core, innovative aspect of this specification. Given the ultimate intent for this document to be a _Model Centric (MC) single-source-of-truth, computable, simulatable, verifiable and validatable system of systems interoperability specification_, and recognizing that it will take a significant transition period from a document-centric approach to a model-centric approach, the simplified requirements model provided below represents a significant step toward realizing these objectives. -See section <> below for possible pathways for fully achieving the vision above. +See <> below for possible pathways for fully achieving the vision above. It should be further noted that though conformity testing aspects are beyond this revision of the SDPi specification, the modeling constructs used below will also be directly associated with test assertions and integrated into test / verification cases to provide for advanced V&V of interoperable system components and entire systems of products. diff --git a/asciidoc/volume2/dev-28/tf2-dev-28.adoc b/asciidoc/volume2/dev-28/tf2-dev-28.adoc index a1ce4996..856fc0ee 100644 --- a/asciidoc/volume2/dev-28/tf2-dev-28.adoc +++ b/asciidoc/volume2/dev-28/tf2-dev-28.adoc @@ -59,7 +59,7 @@ The {var_label_dev_28_message_contextreport} message is sent whenever a context [[payload_dev_28_notification_cotext]]EpisodicContextReport:: A change report that contains context information. -[#vol2_clause_dev_28_message_contextreport_expected_actions] +[#vol2_clause_dev_28_message_notification_expected_actions] ====== Expected Actions When a <> sends this message, there is no expected action or required responses. diff --git a/asciidoc/volume2/dev-29/tf2-dev-29.adoc b/asciidoc/volume2/dev-29/tf2-dev-29.adoc index fc77e2fe..e7ed3b82 100644 --- a/asciidoc/volume2/dev-29/tf2-dev-29.adoc +++ b/asciidoc/volume2/dev-29/tf2-dev-29.adoc @@ -64,7 +64,7 @@ The {var_label_dev_29_message_notification} message is sent whenever a report of [[payload_dev_29_notification_operational_state]]EpisodicOperationalStateReport:: A change report that contains updated operational state information. [[payload_dev_29_notification_waveform]]WaveformStream:: A message to transmit a set of samples of one or more waveforms. -[#vol2_clause_dev_29_message_contextreport_expected_actions] +[#vol2_clause_dev_29_message_notification_actions] ====== Expected Actions When a <> sends this message, there is no expected action or required responses. diff --git a/asciidoc/volume2/dev-30/tf2-dev-30-summary.adoc b/asciidoc/volume2/dev-30/tf2-dev-30-summary.adoc index d2a15072..cd2b99a3 100644 --- a/asciidoc/volume2/dev-30/tf2-dev-30-summary.adoc +++ b/asciidoc/volume2/dev-30/tf2-dev-30-summary.adoc @@ -1,3 +1,3 @@ -// DEV-30 Transaction Summary +// DEV-32 Transaction Summary -Retrieve the MDIB of a <> a <> is interested in. +Retrieve historic <> data of a <> a <> is interested in. \ No newline at end of file diff --git a/asciidoc/volume2/dev-32/tf2-ch-a-mdpws-dev-32.adoc b/asciidoc/volume2/dev-32/tf2-ch-a-mdpws-dev-32.adoc new file mode 100644 index 00000000..7ae35351 --- /dev/null +++ b/asciidoc/volume2/dev-32/tf2-ch-a-mdpws-dev-32.adoc @@ -0,0 +1,144 @@ +:var_uri_ws_eventing_notification: https://www.w3.org/Submission/2006/SUBM-WS-Eventing-20060315/#Notifications + +:var_label_dev_32_message_subscribe: Subscribe +:var_label_dev_32_message_change_sequence_report: ChangeSequenceReport +:var_uri_dpws_messaging: http://docs.oasis-open.org/ws-dd/dpws/1.1/os/wsdd-dpws-1.1-spec-os.html#_Toc228672084 + +[#vol2_clause_appendix_mdpws_dev_32] +==== MDPWS: Retrieve Archive Data [DEV-32] + +This section specifies the MDPWS data transmission for messages defined in <>. + +// ---------- EpisodicAlertReport --------- + + +===== {var_label_dev_32_message_subscribe} Message + +<> leverages <> to initiate a subscription, which is used to deliver historic <> data to a <>. + +The {var_label_dev_32_message_subscribe} message contains filter criteria to the <>, which is defined in this section. Further message outlines are shown in <>. + +The {<>} message is encoded by using {var_uri_dpws_messaging}[DPWS Messaging]. + +====== Referenced Standards + +* <> {var_uri_ws_eventing_subscribe}[Section 3.1 Subscribe] +* <> {var_uri_dpws_eventing}[Section 5 Eventing] + +====== Message Outline + +.WS-Eventing Subscribe message +[source#vol2_clause_appendix_a_mdpws_dev_32_subscribe,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-subscribe.xml[] +---- + +:var_trigger_events_ref: <> +include::../dev-a-default-trigger-events.adoc[] + +====== Message Semantics + +`s12:Envelope/s12:Body/wse:Subscribe/wse:Filter/@Dialect`:: To be set to `urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1.1`, which is the default one defined in this specification. Other dialects may be supported but are not in the scope herein. +`s12:Envelope/s12:Body/wse:Subscribe/wse:Filter/hm:ProvideInitialMdib`:: Set to `true` if an initial <> is requested or `false` otherwise. +`s12:Envelope/s12:Body/wse:Subscribe/wse:Filter/hm:LanguageFilter`:: A list of languages for localized texts to be requested (see data type description in <> for more details). +`s12:Envelope/s12:Body/wse:Subscribe/wse:Filter/hm:Range`:: A range that selects the historic <> data, either based on time frames or <> versions (see data type description in <> for more details). + +:var_expected_actions_ref: <> +include::../dev-a-default-expected-actions.adoc[] + +// ---------- ChangeSequenceReport --------- + +===== {var_label_dev_32_message_change_sequence_report} Message + +The <> message is encoded by using {var_uri_dpws_messaging}[DPWS Messaging]. + +====== Referenced Standards + +* <> {var_uri_dpws_messaging}[Section 2 Messaging] + +====== Message Outline + +.{var_label_dev_32_message_change_sequence_report} message +[source#vol2_clause_appendix_a_mdpws_dev_32_changesequencereport,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-changesequencereport.xml[] +---- + +:var_trigger_events_ref: <> +include::../dev-a-default-trigger-events.adoc[] + +====== Message Semantics + +`s12:Envelope/s12:Body/hm:ChangeSequenceReport/hm:ChangeSequence`:: One sequence of changes in the scope of <> sequence and instance id. +`s12:Envelope/s12:Body/hm:ChangeSequenceReport/hm:HistoricLocalizedTexts`:: Sequence of localized texts referenced from within the historic <>. Element is omitted if not requested in the Subscribe request. +`s12:Envelope/s12:Body/hm:ChangeSequenceReport/hm:HistoricMdib`:: A <> used as a baseline for subsequent historic reports. Element is omitted if not requested in the Subscribe request. +`s12:Envelope/s12:Body/hm:ChangeSequenceReport/hm:HistoricReport`:: A sequence of historic reports. + +:var_expected_actions_ref: <> +include::../dev-a-default-expected-actions.adoc[] + +===== Use-cases + +This section provides sequence diagrams depicting different <> use-cases, namely + +- xref:vol2_figure_dev_32_usecase_version_range[Requesting a specific range of versions] +- xref:vol2_figure_dev_32_usecase_one_sequence_id[Requesting a time range spanning one <> sequence] +- xref:vol2_figure_dev_32_usecase_two_sequence_ids[Requesting a time range spanning multiple <> sequences] + +.<>: Requesting a specific range of versions +[plantuml#vol2_figure_dev_32_usecase_version_range, target=puml-dev-32-usecase-version-range, format=svg] +.... +include::../../plantuml/vol2-figure-dev-32-usecase-version-range.puml[] +.... + +.<>: Requesting a time range spanning one <> sequence +[plantuml#vol2_figure_dev_32_usecase_one_sequence_id, target=puml-dev-32-usecase-one-sequence-id, format=svg] +.... +include::../../plantuml/vol2-figure-dev-32-usecase-one-sequence-id.puml[] +.... + +.<>: Requesting a time range spanning one <> sequence +[plantuml#vol2_figure_dev_32_usecase_two_sequence_ids, target=puml-dev-32-usecase-two-sequence-ids, format=svg] +.... +include::../../plantuml/vol2-figure-dev-32-usecase-two-sequence-ids.puml[] +.... + +===== Example message exchange + +This section shows an exemplary sequence of messages when requesting the <>. + +.Subscribe message targeted at the <> +[source#vol2_clause_appendix_a_mdpws_dev_32_example_00,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-example-00.xml[] +---- + +.SubscribeResponse message targeted at the <> +[source#vol2_clause_appendix_a_mdpws_dev_32_example_01,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-example-01.xml[] +---- + +.ChangeSequenceReport message targeted at the <> +[source#vol2_clause_appendix_a_mdpws_dev_32_example_02,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-example-02.xml[] +---- + +.ChangeSequenceReport message targeted at the <> +[source#vol2_clause_appendix_a_mdpws_dev_32_example_03,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-example-03.xml[] +---- + +.ChangeSequenceReport message targeted at the <> +[source#vol2_clause_appendix_a_mdpws_dev_32_example_04,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-example-04.xml[] +---- + +.SubscriptionEnd message targeted at the <> +[source#vol2_clause_appendix_a_mdpws_dev_32_example_05,xml] +---- +include::../../listings/vol2-clause-appendix-a-mdpws-dev-32-example-05.xml[] +---- \ No newline at end of file diff --git a/asciidoc/volume2/dev-32/tf2-dev-32-summary.adoc b/asciidoc/volume2/dev-32/tf2-dev-32-summary.adoc new file mode 100644 index 00000000..2a0887a5 --- /dev/null +++ b/asciidoc/volume2/dev-32/tf2-dev-32-summary.adoc @@ -0,0 +1,3 @@ +// DEV-32 Transaction Summary + +Establishes a subscription (see <>) and produces a stream of messages that reflect historic <> data. \ No newline at end of file diff --git a/asciidoc/volume2/dev-32/tf2-dev-32.adoc b/asciidoc/volume2/dev-32/tf2-dev-32.adoc new file mode 100644 index 00000000..785be94d --- /dev/null +++ b/asciidoc/volume2/dev-32/tf2-dev-32.adoc @@ -0,0 +1,85 @@ +:var_transaction_id: DEV-32 + +:var_label_dev_32_message_notification: Change Sequence Report + + +//reset|+1|off +[#vol2_clause_dev_32,sdpi_offset=32] +=== Retrieve Archive Data [{var_transaction_id}] + +==== Scope + +include::tf2-dev-32-summary.adoc[] + +==== Actor Roles + +.Actor Roles [{var_transaction_id}] +[cols="1,2"] +|=== +|Actor |Roles + +|<> +|Once subscribed, listens for messages to retrieve historic <> reports. + +|<> +|While a subscription is running, the <> delivers messages that reflect historic <> reports. + +|=== + +==== Referenced Standards + +* <> Section 7.4 Message Model + +==== Messages + +.Message Interaction Diagram [{var_transaction_id}] +[plantuml#vol2_figure_dev_32_sequence, target=puml-dev-32-sequence, format=svg] +.... +include::../../plantuml/vol2-figure-dev-32-sequence.puml[] +.... + +[#vol2_clause_dev_32_message_subscribe] +===== Subscribe Message + +The Subscribe message used to establish a historic <> data stream. + +[#vol2_clause_dev_32_message_subscribe_trigger_events] +====== Trigger Events + +The Subscribe message is sent whenever a <> wants to access historic <> data. + +[#vol2_clause_dev_32_message_subscribe_semantics] +====== Message Semantics + +[[payload_dev_32_filter]]Filter:: A generic filter expression defined by other means. + +[#vol2_clause_dev_32_message_subscribe_expected_actions] +====== Expected Actions + +This message is part of a subscription establishment process as described in <>. Once the subscription is running, the <> sends <> messages. + +// ---------- Notification --------- + +[#vol2_clause_dev_32_message_notification] +===== {var_label_dev_32_message_notification} Message + +The {var_label_dev_32_message_notification} messages contain historic <> data and are delivered in a 1:1 relationship by a <> to a <>. + +[#vol2_clause_dev_32_message_notification_trigger_events] +====== Trigger Events + +{var_label_dev_32_message_notification} messages are sent for as long as there is requested historic <> data left to be transmitted to the subscribed <> based on filter criteria specified by <>. + +[#vol2_clause_dev_32_message_notification_semantics] +====== Message Semantics + +[[payload_dev_32_notification_changesequencereport]]ChangeSequenceReport:: A report that contains historic <> data. + +[#vol2_clause_dev_32_message_notification_expected_actions] +====== Expected Actions + +When a <> sends this message, there is no expected action or required responses. + +[#vol2_clause_dev_32_publish_biceps_update_reports_ses] +include::../dev-x-default-ses-secured-mode.adoc[] + diff --git a/asciidoc/volume2/discovery-proxy/tf2-ch-a-mdpws-discovery-proxy.adoc b/asciidoc/volume2/discovery-proxy/tf2-ch-a-mdpws-discovery-proxy.adoc index 35d11267..1258dc66 100644 --- a/asciidoc/volume2/discovery-proxy/tf2-ch-a-mdpws-discovery-proxy.adoc +++ b/asciidoc/volume2/discovery-proxy/tf2-ch-a-mdpws-discovery-proxy.adoc @@ -10,7 +10,7 @@ This chapter describes requirements to the <> shall provide the Discovery Proxy service by implementing the port type with the <> dp:DiscoveryProxy. -NOTE: The <> port type is defined in <>. +NOTE: The <> port type is defined in <>. NOTE: The OID used for the target namespace of the <> WSDL file is listed in <>. **** @@ -70,10 +70,10 @@ All object identifiers used by the <> ar ==== Discovery Proxy WSDL -<> shows the WSDL file that specifies the <> Web Service interface. +<> shows the WSDL file that specifies the <> Web Service interface. .Discovery Proxy WSDL outline -[source#vol2_clause_appendix_a_mdpws_wsdl,xml] +[source#vol2_clause_appendix_a_mdpws_discovery_proxy_wsdl,xml] ---- include::../../../sources/discovery-proxy/DiscoveryProxy.wsdl[] ---- diff --git a/asciidoc/volume2/history-service/tf2-ch-a-mdpws-history-service.adoc b/asciidoc/volume2/history-service/tf2-ch-a-mdpws-history-service.adoc new file mode 100644 index 00000000..518aa78b --- /dev/null +++ b/asciidoc/volume2/history-service/tf2-ch-a-mdpws-history-service.adoc @@ -0,0 +1,188 @@ +[#vol2_clause_appendix_mdpws_history_service] +=== History Service implementation requirements + +This chapter describes requirements to the <> <> binding that go beyond message outlines and semantics specified in section <>. + +==== General procedure + +As laid out in <>, a <> that is interested in historic <> data, establishes a subscription to a <> in order to request <> data of a certain time or version range. + +Per requested <>, the <> responds with an initial <> plus a sequence of change reports to be applied on that initial <>. + +The <> may split the response into multiple reports by sending multiple notifications. +This allows for the <> to stipulate the data rate in which it provides the information to the <> and avoid exceeding +data size limitations of notifications. + +The <> allows for limited filtering: + +- Select historic data based on time and version ranges +- Select localized texts referenced by historic data based on languages +- Choose to receive an initial <> or not + +==== Binding + +The <> is bound to <> by using the XML Schema as specified in <> and service interface as specified in <>. + +.R0511 +[sdpi_requirement#r0511,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +A <> shall provide the <> by implementing the port type with the QName hs:HistoryService. +**** + +.R0512 +[sdpi_requirement#r0512,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +A <> shall accept the WS-Eventing wse:Filter@Dialect `urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1.1`. +**** + +.R0513 +[sdpi_requirement#r0513,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +A <> shall add the filter dialect `urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1.1` to every Subscribe request to a <>. +**** + +.R0514 +[sdpi_requirement#r0514,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +A <> shall only add exactly one hm:HistoryQuery element to a wse:Subscribe/wse:Filter element with @Dialect = +"urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1.1". +**** + +.R0515 +[sdpi_requirement#r0515,sdpi_req_level=shall,sdpi_req_type=tech_feature,subs=normal] +**** +For a time range-filtered subscription, a <> shall respond with notifications that reflect the MDIB of the <> and its changes in the time interval including ++[hm:TimeRange/@StartTime, hm:TimeRange/@EndTime]++. + +NOTE: A <> may respond with data that exceed the interval of ++[hm:TimeRange/@StartTime, hm:TimeRange/@EndTime]++. +**** + +.R0516 +[sdpi_requirement#r0516,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +For a version range-filtered subscription, a <> shall respond with notifications that reflect the MDIB of the <> at the given pm:Mdib@SequenceId and pm:Mdib@InstanceId in the version interval including ++[hm:VersionRange/@StartVersion, hm:VersionRange/@EndVersion]++. + +NOTE: A <> may respond with data that exceed the interval of ++[hm:VersionRange/@StartVersion, hm:VersionRange/@EndVersion]++. + +NOTE: A <> may respond with a subset of data from the interval ++[hm:VersionRange/@StartVersion, hm:VersionRange/@EndVersion]++, e.g., if it cannot fully serve the request due to discarded historic information or filter request that point into the future. +**** + +.R0517 +[sdpi_requirement#r0517,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +If a hm:HistoryQuery element contains a hm:LanguageFilter element, a <> shall transmit <> according to the rule set specified in hm:HistoryQuery/hm:LanguageFilter. + +NOTE: If a <> cannot serve the requested languages, the <> may omit them from the notification messages. +**** + +.R0518 +[sdpi_requirement#r0518,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +If it is intended for a <> to include <>s in hm:ChangeSequenceReport elements, for an <> that is requested from a <>, the <> shall transmit filtered <>s before transmitting the hm:HistoricMdib or hm:HistoricReport elements that reference the <>s. +**** + +.R0519 +[sdpi_requirement#r0519,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +If it is not intended for a <> to include <>s in hm:ChangeSequenceReport elements, the <> shall provide all <>s at the LOCALIZATION SERVICE. + +NOTE: This implies that the LOCALIZATION SERVICE provides historic and current localized texts for which all references are consistent across all <>. +**** + +.R0520 +[sdpi_requirement#r0520,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +For an <> that is requested from a <>, the <> shall transmit hm:HistoricMdib before transmitting hm:HistoricReport elements. +**** + +.R0521 +[sdpi_requirement#r0521,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +For an <> that is requested from a <>, the <> shall send hm:ChangeSequence/hm:Report elements in ascending order by pm:Mdib@MdibVersion. +**** + +.R0522 +[sdpi_requirement#r0522,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +For an <> that is requested from a <>, the <> shall provide exactly one <> in hm:ChangeSequence/hm:HistoricMdib. +**** + +.R0523 +[sdpi_requirement#r0523,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +A <> shall transmit <> in chronological order of occurrence. +**** + +.R0524 +[sdpi_requirement#r0524,sdpi_req_level=shall,sdpi_req_type=tech_feature] +**** +A <> shall signify the end of the historic MDIB data stream by sending a hm:ChangeSequenceReport notification that contains @LastReport = true. +**** + +.R0525 +[sdpi_requirement#r0525,sdpi_req_level=should,sdpi_req_type=tech_feature] +**** +When a <> has sent the last notification of a <> subscription, the <> should end the subscription by sending a wse:SubscriptionEnd with wse:Status = "http://schemas.xmlsoap.org/ws/2004/08/eventing/SourceCancelling". +**** + +==== Utilized OIDs + +All object identifiers used by the <> are specified in <>. + +[#vol2_table_appendix_mdpws_history_service_oids] +.Objects identifiers used, e.g. for WS-Eventing subscription filter dialects or WSDL target namespace assignments +[cols="2,3,1",options="autowidth, header"] +|=== +| Primary identifier +| Concept description +| Secondary identifier + +| 1.3.6.1.4.1.19376.1.6.2.10 +| Profile specific OID for SDPi +| sdpi + +| 1.3.6.1.4.1.19376.1.6.2.10.1 +| Describes namespaces for different purposes as specified by its sub-nodes +| namespaces + +| 1.3.6.1.4.1.19376.1.6.2.10.1.3 +| Identifies <> objects. +| history-service + +| 1.3.6.1.4.1.19376.1.6.2.10.1.3.1 +| Used to address the <> service interface. +| service + +| 1.3.6.1.4.1.19376.1.6.2.10.1.3.1.1 +| Subscription filter dialect used to identify <> subscriptions provided by the <>. +| subscription-filter + +| 1.3.6.1.4.1.19376.1.6.2.10.1.3.1.2 +| Addresses the output payload of the <> subscription. +| report + +| 1.3.6.1.4.1.19376.1.6.2.10.1.3.2 +| Used to address the <> model. +| model +|=== + +==== History Service XML Schema + +<> shows the XML Schema file that specifies the <> XML grammar. + +The XML Schema includes the BICEPS message, participant and extension Model files as provided as an additional resource at https://standards.ieee.org/ieee/11073-10207/6032/. + +.<> XML Schema outline +[source#vol2_clause_appendix_a_mdpws_history_service_xmlschema,xml] +---- +include::../../../sources/history-service/HistoryModel.xsd[] +---- + +==== History Service WSDL + +<> shows the WSDL file that specifies the <> Web Service interface. + +.<> WSDL outline +[source#vol2_clause_appendix_a_mdpws_history_service_wsdl,xml] +---- +include::../../../sources/history-service/HistoryService.wsdl[] +---- diff --git a/asciidoc/volume2/tf2-ch-a-mdpws.adoc b/asciidoc/volume2/tf2-ch-a-mdpws.adoc index c54d4138..c1b0167f 100644 --- a/asciidoc/volume2/tf2-ch-a-mdpws.adoc +++ b/asciidoc/volume2/tf2-ch-a-mdpws.adoc @@ -38,6 +38,9 @@ include::dev-29/tf2-ch-a-mdpws-dev-29.adoc[] //=== Retrieve BICEPS Content [DEV-30] include::dev-30/tf2-ch-a-mdpws-dev-30.adoc[] +include::dev-32/tf2-ch-a-mdpws-dev-32.adoc[] + + //=== Retrieve Localization Information [DEV-33] include::dev-33/tf2-ch-a-mdpws-dev-33.adoc[] @@ -62,6 +65,8 @@ include::dev-47/tf2-ch-a-mdpws-dev-47.adoc[] include::discovery-proxy/tf2-ch-a-mdpws-discovery-proxy.adoc[] +include::history-service/tf2-ch-a-mdpws-history-service.adoc[] + === Security Considerations In TR1164, <> requires a <> to protect <> services against unauthenticated access. diff --git a/asciidoc/volume2/tf2-main.adoc b/asciidoc/volume2/tf2-main.adoc index 94670d03..7cce5a91 100644 --- a/asciidoc/volume2/tf2-main.adoc +++ b/asciidoc/volume2/tf2-main.adoc @@ -27,6 +27,9 @@ include::dev-29/tf2-dev-29.adoc[] //=== Retrieve BICEPS Content [DEV-30] include::dev-30/tf2-dev-30.adoc[] +//=== Retrieve Archive Data [DEV-32] +include::dev-32/tf2-dev-32.adoc[] + //=== Retrieve Localization Information [DEV-33] include::dev-33/tf2-dev-33.adoc[] diff --git a/sources/history-service/BICEPS_MessageModel.xsd b/sources/history-service/BICEPS_MessageModel.xsd new file mode 100644 index 00000000..8c0ad7b2 --- /dev/null +++ b/sources/history-service/BICEPS_MessageModel.xsd @@ -0,0 +1,1548 @@ + + + + + + This XML schema defines the 'Basic Integrated Clinical Environment Protocol Specification' (BICEPS) that is a Domain Information Model (DIM) for point of care medical device communication. + It encompasses the device model and the corresponding messages. + This XML Schema is based on the ISO/IEEE 11073-10201 Domain Information Model standard, + which belongs to the "Point-of-care medical device communication" standard family in ISO/IEEE 11073. + This standard family should not to be confused with the ISO/IEEE 11073 "Personal Health Device" standard family. + While former is based on the standards ISO/IEEE 11073-10101, 11073-10201, 11073-20101, and 11073-30200, + the latter is based on ISO/IEEE 11073-20601 and ISO/IEEE 11073-104xx. + The Domain Information model is subdivided into two parts, a static part (referred to as Descriptor) + that provides general information about the hardware specification of the elements and + a dynamic part (referred to as State) that may change during time. + + + + + TransactionId is a transaction identifier that SHALL be unique among an operation invocation transaction. + + + + + + Transaction state of an invoked operation. + + + + + Wait = Waiting. The operation has been queued and waits for execution. + + + + + Start = Started. The execution of the operation has been started. + + + + + Cnclld = Cancelled. The execution has been cancelled by the SERVICE PROVIDER. + + + + + CnclldMan = Cancelled Manually. The execution has been cancelled by the operator. + + + + + Fin = Finished. The execution has been finished. + + + + + FinMod = Finished with modification. As the requested target value could not be reached, the next best value has been chosen and used as target value. + + + + + The execution has been failed. + + + + + + + InvocationError conveys details with respect to the origin of an operation invocation failure. + + + + + Unspec = Unspecified. An unspecified error has occurred. No more information about the error is available. + + + + + Unkn = Unknown Operation. The HANDLE to the operation object is not known. + + + + + Inv = Invalid Value. The HANDLE to the operation object does not match the invocation request MESSAGE. + +Example: if a msg:SetString MESSAGE is received, in which the msg:SetString/msg:OperationHandleRef points to a msg:SetValue MESSAGE, the receiver replies with InvocationError "Inv". + + + + + Oth = Other. Another type of error has occurred. More information on the error MAY be available. + + + + + + + InvocationInfo conveys information to describe a transaction operation. + + + + + + Transaction identifier that has been assigned to the processing of a set operation. + +The transaction identifier SHALL be used to identify a set operation transaction status that is delivered via msg:OperationInvokedReport MESSAGEs. The transaction's initial identifier is tramsmitted in the response of a set operation request. + + + + + Processing state of an invoked operation. + + + + + If ./msg:InvocationState indicates a failure, InvocationError may convey more information about the error. + + + + + If ./msg:InvocationState indicates a failure, InvocationErrorMessage may convey a MESSAGE for a user with information about the error. + + + + + + + + The GET SERVICE provides a set of request and response MESSAGEs. AbstractGet is the building block for any GET SERVICE request MESSAGE. + + + + + + + + The GET SERVICE provides a set of request and response MESSAGEs. AbstractGetResponse is the building block for any GET SERVICE response MESSAGE. + +Per convention any response MESSAGE ends up with "Response", whereas request MESSAGEs possess no specific suffix. + + + + + + + + + Any report that is delivered using msg:AbstractReport MAY consist of multiple report parts. AbstractReport is the building block for a single report part in a msg:AbstractReport. + + + + + + Reference to the MDS that has triggered the sending of the report part. An event sink MAY use this HANDLE reference for filtering. + +- If the MDIB includes a single MDS only, SourceMds is OPTIONAL. +- If the MDIB includes multiple MDSs, SourceMds is REQUIRED. + + + + + + + Event report services provide a set of MESSAGEs, which are distributed using a publish subscribe mechanism. AbstractReport is the building block for any event MESSAGE that is delivered to an event sink. + + + + + + + + + The SET SERVICE provides a set of request and response MESSAGEs. AbstractSet is the building block for any SET SERVICE request MESSAGE. + + + + + + Handle of the set operation to invoke. + +A SERVICE PROVIDER SHALL accept a set request only if at least the operation target HANDLE is valid and the operation is enabled according to the POC MEDICAL DEVICE's MDIB. A target HANDLE is valid if the operation to invoke can be applied on the object referenced by the target HANDLE. An operation can be considered as enabled if pm:AbstractOperationStateType/@OperatingMode equals "En". + + + + + + + The SET SERVICE provides a set of request and response MESSAGEs. AbstractSetResponse is the building block for any SET SERVICE response MESSAGE. + +Per convention any response MESSAGE ends up with "Response", whereas request MESSAGEs possess no specific suffix. + + + + + + Information set regarding the returned transaction. See pm:InvocationInfo. + + + + + + + + + GetMdib is the request to a msg:GetMdibResponse MESSAGE. + + + + + + + + + + GetMdibResponse is the response to a msg:GetMdib MESSAGE It conveys the complete MDIB. + +Since contexts might include privacy-related information, a SERVICE PROVIDER MAY decide to leave the MDS contexts empty. To acquire context information, a client has to send a msg:GetContextStates request. + + + + + + + + Current snapshot of the MDIB. + + + + + + + + + + GetMdDescription is the request to a msg:GetMdDescriptionResponse MESSAGE. + + + + + + + + List of HANDLEs that specify which descriptors are requested. See msg:GetMdDescriptionResponse/msg:MdDescription. + + + + + + + + + + GetMdDescriptionResponse is the response to a msg:GetMdDescription MESSAGE. It transports a set of MDS descriptors. + + + + + + + + MdDescription comprises the requested set of MDS descriptors. Which MDS descriptors SHALL be included depends on the msg:GetMdDescription/msg:HandleRef list: + +- If the HANDLE reference list is empty, all MDS descriptors are included in the result list. +- If a HANDLE reference does match an MDS descriptor, it is included in the result list. +- If a HANDLE reference does not match an MDS descriptor (i.e., any other descriptor), the MDS descriptor that is in the parent tree of the HANDLE reference is included in the result list. + + + + + + + + + + GetMdState is the request to a msg:GetMdStateResponse MESSAGE. + + + + + + + + List of HANDLEs that specify which states are requested. See msg:GetMdStateResponse/msg:MdState. + + + + + + + + + + GetMdStateResponse is the response to a msg:GetMdState MESSAGE. + + + + + + + + MdState comprises the requested set of MDS states. Which MDS states SHALL be included depends on the msg:GetMdState/msg:HandleRef list: + +- If the HANDLE reference list is empty, all states in the MDIB are included in the result list. +- If a HANDLE reference does match a multi state HANDLE, the corresponding multi state is included in the result list. +- If a HANDLE reference does match a descriptor HANDLE, all states that belong to the corresponding descriptor are included in the result list. + +Since context states might include privacy-related information, a SERVICE PROVIDER can decide to skip any contexts states. Context states have to be requested by sending a msg:GetContextStates request. + + + + + + + + + + + GetContextStates is the request to a msg:GetContextStatesResponse MESSAGE. + + + + + + + + List of HANDLEs that specify which context states are requested. See msg:GetContextStatesResponse/msg:ContextState. + + + + + + + + + + GetContextStatesResponse is the response to a msg:GetContextStates MESSAGE. + + + + + + + + ContextState comprises the requested set of context states. + +__R5039: If the msg:GetContextStates/msg:HandleRef list is empty, all context states in the MDIB SHALL be included in the result list.__ + +__R5040: If a HANDLE reference from the msg:GetContextStates/msg:HandleRef list does match a context descriptor HANDLE, then all context states that belong to the corresponding context descriptor SHALL be included in the result list.__ + +__R5041: If a HANDLE reference from the msg:GetContextStates/msg:HandleRef list does match a context state HANDLE, then the corresponding context state SHALL be included in the result list.__ + +__R5042: If a HANDLE reference from the msg:GetContextStates/msg:HandleRef list does match an MDS descriptor, then all context states that are part of this MDS SHALL be included in the result list.__ + + + + + + + + + + GetContextStatesByIdentification is the request to a msg:GetContextStatesByIdentificationResponse MESSAGE. + + + + + + + + List of pm:InstanceIdentifier ELEMENTs that specify which context states are requested based on their pm:AbstractContextState/pm:Identification. See msg:GetContextStatesByIdentificationResponse/msg:ContextState. + + + + + + ContextType defines the type of context to return (e.g., pm:LocationContextState or pm:PatientContextState). + + + + + + + + + GetContextStatesByIdentificationResponse is the response to a msg:GetContextStatesByIdentification MESSAGE. + + + + + + + + ContextState comprises the requested set of context states. + +__R5036: If the msg:GetContextStates/msg:Identification list is empty, then no context states SHALL be included in the result list.__ + +__R5037: The result list SHALL enclose all context states of the requested msg:GetContextStates/@ContextType that match at least all ELEMENTs from the msg:GetContextStates/msg:Identification list.__ + + + + + + + + + + GetContextStatesByFilter is the request to a msg:GetContextStatesByFilterResponse. + + + + + + + + List of XPath expressions that specify which context states are requested based on XPath expressions. See msg:GetContextStatesByFilterResponse/msg:ContextState. + +__R5045: The root node of the XPath expression SHALL be the pm:MdState ELEMENT of the target MDIB.__ + + + + + + ContextType defines the type of context to return (e.g., pm:LocationContextState or pm:PatientContextState). + + + + + + + + + GetContextStatesByFilterResponse is the response to a msg:GetContextStatesByFilter MESSAGE. + + + + + + + + ContextState comprises the requested set of context states. + +__R5043: If the msg:GetContextStates/msg:Filter list is empty, then no context states SHALL be included in the result list.__ + +__R5044: The result SHALL enclose all context states of the requested msg:GetContextStates/@ContextType that match the filter criteria from the msg:GetContextStates/msg:Filter list where all filter criteria are concatenated by a logical "and".__ + +NOTE—For a logical "or" concatenation a SERVICE CONSUMER has to send multiple requests. This is similar to the Types and Scopes filtering mechanism of WS-Discovery [WS-Discovery]. + + + + + + + + + + + SetContextState is the request to a msg:SetContextStateResponse MESSAGE. Its function is to insert a new or modify an existing context state. + +The corresponding operation description is defined by pm:SetContextStateOperationDescriptor. + + + + + + + + ProposedContextState comprises the context states that have to be inserted or updated: + +- If ProposedContextState/@Handle is equal ProposedContextState/@DescriptorHandle, the proposed object SHOULD be created as a new context state. +- If ProposedContextState/@Handle is not equal ProposedContextState/@DescriptorHandle, the proposed object SHOULD be modified. + + + + + + + + + + Response MESSAGE to a SetContextState request MESSAGE. + + + + + + + + + + AbstractContextReport is a change report that contains updated pm:AbstractContextState instances. + + + + + + + List of report containers associated to one MDS. + + + + + + + + + List of changed pm:AbstractContextState instances. + + + + + + + + + + + + + + PeriodicContextReport is an msg:AbstractContextReport that is delivered periodically. + + + + + + + + + + EpisodicContextReport is an msg:AbstractContextReport that is delivered episodically. It is sent if at least one pm:AbstractContextState has changed. It SHALL contain only pm:AbstractContextState instances where at least one child ELEMENT or ATTRIBUTE have changed. + + + + + + + + + + + GetLocalizedText is the request to a msg:GetLocalizedTextResponse MESSAGE. Its intended use is to obtain a localized text that is referenced in the MDIB. + + + + + + + + Zero or more reference names of the texts that are requested. The ELEMENT SHALL have the following impacts on the information conveyed in msg:GetLocalizedTextResponse/msg:Text: + +- If there is no Ref ELEMENT given in the request MESSAGE, then all texts are returned in msg:GetLocalizedTextResponse/msg:Text. +- If there is at least one Ref ELEMENT given, then msg:GetLocalizedTextResponse/msg:Text contains all texts that match the Ref ELEMENTs of the msg:GetLocalizedText request MESSAGE. + + + + + Revision of the referenced text that is requested. The ELEMENT SHALL have the following impacts on the information conveyed in msg:GetLocalizedTextResponse/msg:Text: + +- If the referenced text is not available in the specific version, then msg:GetLocalizedTextResponse/msg:Text is empty. +- If Version is not specified, then msg:GetLocalizedTextResponse contains the latest version of the text in msg:GetLocalizedTextResponse/msg:Text. + + + + + Zero or more language identifiers according to RFC 5646 (see http://tools.ietf.org/html/rfc5646) to get different translations of the requested text. The ELEMENT SHALL have the following impacts on the information conveyed in msg:GetLocalizedTextResponse/msg:Text: + +- If there is no Lang ELEMENT given in the request MESSAGE, then all translations are returned in msg:GetLocalizedTextResponse/msg:Text. +- If there is at least one Lang ELEMENT given, then msg:GetLocalizedTextResponse/msg:Text contains translations in all languages matching the Lang ELEMENTs of the msg:GetLocalizedText request MESSAGE. If a text is not available in a specific language, the result for that specific language is omitted. + +NOTE—A set of supported languages is retrievable using msg:GetSupportedLanguages. + + + + + Zero or more pm:LocalizedTextWidth itentifiers to filter for different text widths. The ELEMENT SHALL have the following impacts on the information conveyed in msg:GetLocalizedTextResponse/msg:Text: + +- If there is no TextWidth ELEMENT given in the request MESSAGE, then all text widths are returned in msg:GetLocalizedTextResponse/msg:Text. +- If there is at least one TextWidth ELEMENT given, then msg:GetLocalizedTextResponse/msg:Text contains texts with all text widths matching the TextWidth ELEMENTs of the msg:GetLocalizedText request MESSAGE. Matching in this case means that the number of full width characters in the text is less or equal to the TextWidth ELEMENTs. + + + + + Zero or more numbers to filter for number of lines. The ELEMENT SHALL have the following impacts on the information conveyed in msg:GetLocalizedTextResponse/msg:Text: + +- If there is no NumberOfLines ELEMENT given in the request MESSAGE, then all texts independent of the number of lines are returned in msg:GetLocalizedTextResponse/msg:Text. +- If there is at least one NumberOfLines ELEMENT given, msg:GetLocalizedTextResponse/msg:Text contains texts that match the number of lines defined by the NumberOfLines ELEMENTs of the msg:GetLocalizedText request MESSAGE. Matching in this case means that the number of lines in the text is less or equal to the NumberOfLines ELEMENTs. + + + + + + + + + + GetLocalizedTextResponse is the response to a msg:GetLocalizedText MESSAGE. + + + + + + + + A list of texts that SHALL contain a result according to the selection constituted by msg:GetLocalizedText/msg:Ref, msg:GetLocalizedText/msg:Version, and msg:GetLocalizedText/msg:Lang. + + + + + + + + + + GetSupportedLanguages is the request to a msg:GetSupportedLanguagesResponse MESSAGE. + + + + + + + + + + + + GetSupportedLanguagesResponse is the response to a msg:GetSupportedLanguagesResponse MESSAGE. A GetSupportedLanguagesResponse MESSAGE SHALL be send in answer to a GetSupportedLanguages request MESSAGE and contains all language identifiers available for referenced localized texts. + + + + + + + + List of language identifiers available to request referenced localized texts. The format is given in accordance to RFC 5646 (see http://tools.ietf.org/html/rfc5646). + + + + + + + + + + + VersionFrame constitutes a version frame by defining ./@Start and ./@End, whereby ./@Start is REQUIRED to be lesser than or equal to ./@End. + + + + The start version of the version frame. + + + + + The end version of the version frame. + + + + + + TimeFrame constitutes a time frame by defining ./@Start and ./@End, whereby ./@Start is REQUIRED to be lesser than ./@End. + + + + The start time of the time frame. + + + + + The end time of the time frame. + + + + + + GetDescriptorsFromArchive is the request to a msg:GetDescriptorsFromArchiveResponse MESSAGE. Its intended use is used to request descriptors from the MDIB archive related to a specific descriptor version and/or time frame. + +__R5015: GetDescriptorsFromArchive SHALL at least expect ./msg:DescriptorRevisions or ./msg:TimeFrame as a filter condition.__ + +__R5016: If both ./msg:DescriptorRevisions and ./msg:TimeFrame are given, the filter SHALL be applied by conjunction. If none are defined, the MESSAGE is invalid.__ + + + + + + + + DescriptorRevisions is a version-based filter. It designates the referenced descriptor version frame that is requested. By adding this optional ELEMENT to the request, msg:GetDescriptorsFromArchiveResponse SHALL only respond with descriptors that match this version frame. + + + + + TimeFrame defines a time-based filter. By adding this ELEMENT to the request, msg:GetDescriptorsFromArchiveResponse SHALL only respond with descriptors that matches this time frame. + + + + + A list of HANDLE references that serve as a filter for the response. + +__R5017: If one or more HANDLE references are defined, msg:GetDescriptorsFromArchiveResponse SHALL respond only with descriptors that match these HANDLE references at the given revision and/or time frame.__ + +__R5018: If no HANDLE references are defined, msg:GetDescriptorsFromArchiveResponse SHALL respond with all descriptors at the given revision and/or time frame.__ + + + + + + + + + + GetDescriptorsFromArchiveResponse MESSAGE is sent as the response to a GetDescriptorsFromArchive request MESSAGE using the ARCHIVE SERVICE. + + + + + + + + A list of descriptors. The descriptors SHALL match the time frame as well as the version and HANDLE references of the GetDescriptorsFromArchive request MESSAGE. + + + + + + + + + + GetStatesFromArchive MESSAGE is used by the ARCHIVE SERVICE to request states related to a specific state version and/or time frame. + +__R5019: GetStatesFromArchive SHALL at least expect a version or a time frame filter.__ + +__R5020: If both a version and a time frame are defined, the filter SHALL apply by conjunction. If none are defined, the MESSAGE is invalid.__ + +NOTE—It is not sufficient to provide HANDLEs only. + + + + + + + + StateRevisions is a version filter. It designates the referenced state version frame that is requested. By adding this optional ELEMENT to the request, GetStatesFromArchiveResponse SHALL only respond with states matching this version frame. + + + + + TimeFrame defines a time-based filter. By adding this optional ELEMENT to the request, GetStatesFromArchiveResponse SHALL only respond with states matching this time frame. + + + + + A list of HANDLE references which serve as a filter for the response. + +__R5021: If one or more HANDLE references are defined, GetStatesFromArchiveResponse SHALL respond only with states matching these HANDLE references at the given revision and/or time frame.__ + +__R5022: If no HANDLE references are defined, GetStatesFromArchiveResponse SHALL respond with all states at the given revision and/or time frame.__ + +__R5023: If a HANDLE is a descriptor HANDLE that points to a multi state, GetStatesFromArchiveResponse SHALL respond with all states referring to the descriptor HANDLE.__ + + + + + + + + + + GetStatesFromArchiveResponse MESSAGE is sent as the response to a GetStatesFromArchive request MESSAGE using the ARCHIVE SERVICE. + + + + + + + + A list of states. The states SHALL match the time frame as well as the version and HANDLE references of the GetStatesFromArchive request MESSAGE. + + + + + + + + + + + SetValue is the request to a msg:SetValueResponse MESSAGE. + +The corresponding operation description is defined by pm:SetValueOperationDescriptor. + + + + + + + + Value of pm:NumericMetricState/pm:ObservedValue/@Value to set. + + + + + + + + + + SetValueResponse is the response to a msg:SetValue MESSAGE. + + + + + + + + + + SetString is the request to a msg:SetStringResponse MESSAGE. + +The corresponding operation description is defined by pm:SetStringOperationDescriptor. + + + + + + + + Value of pm:StringMetricState/pm:ObservedValue/@Value to set. + + + + + + + + + + SetStringResponse is the response to a msg:SetString MESSAGE. + + + + + + + + + + Activate is the request to an msg:ActivateResponse MESSAGE. It allows invocation of a predefined job, e.g., to silence alarms. + +The corresponding operation description is defined by pm:ActivateOperationDescriptor. + + + + + + + + List of arguments that can be used for invocation. The type list of the arguments can be obtained by the operation description in the MDIB. Furthermore, the ordering of Argument SHALL match the ordering in pm:ActivateOperationDescriptor/pm:Argument. + + + + + + + Argument value. + + + + + + + + + + + + + ActivateResponse is the response to an msg:Activate MESSAGE. + + + + + + + + + + SetAlertState is the request to a msg:SetAlertStateResponse MESSAGE. The intended use is to modifiy alert states. + +The corresponding operation description is defined by pm:SetAlertStateOperationDescriptor. + + + + + + + + ProposedAlertState comprises the alert states that have to be updated. + + + + + + + + + + SetAlertStateResponse is the response to a msg:SetAlertState MESSAGE. + + + + + + + + + + SetComponentState is the request to a msg:SetComponentStateResponse MESSAGE. Its intended use is to modify an existing component state. + +The corresponding operation description is defined by pm:SetComponentStateOperationDescriptor. + + + + + + + + ProposedComponentState comprises the component states that have to be updated. + + + + + + + + + + SetComponentStateResponse is the response to a msg:SetComponentState MESSAGE. + + + + + + + + + + SetMetricState is the request to a msg:SetMetricStateResponse MESSAGE. + +The corresponding operation description is defined by pm:SetMetricStateOperationDescriptor. + + + + + + + + ProposedMetricState comprises the METRIC states that have to be updated. + + + + + + + + + + SetMetricStateResponse is the response to a msg:SetMetricState MESSAGE. + + + + + + + + + + OperationInvokedReport is a change report that contains updated invocation information. It is delivered if the state of the execution of a remote operation request has changed. + +To identify which state of a multi state is changed or created, OperationInvokedReport SHALL include msg:OperationInvokedReportPart/@OperationTarget. This ATTRIBUTE defines the multi state that is created or updated. + + + + + + + + List of report containers associated to one MDS. + + + + + + + + Information set regarding the report's transaction status. See pm:InvocationInfo. + + + + + Identifies the PARTICIPANT that has requested the execution of the operation. + +NOTE—If another PARTICIPANT is interested in who requested a certain operation, it is able to track that information by means of InvocationSource. + + + + + + A REQUIRED HANDLE reference that provides a link to the set operation processed by the transaction. + + + + + An OPTIONAL HANDLE reference that provides a link to the CONTAINMENT TREE ENTRY affected by the transaction. + + + + + + + + + + + + + + + GetContainmentTree is the request to a msg:GetContainmentTreeResponse MESSAGE. It is intended to be used as a tool to navigate through the CONTAINMENT TREE of an MDIB. + + + + + + + + List of HANDLE references that specify which CONTAINMENT TREE ENTRYs are requested. + +__R5030: All HANDLE references SHALL share the same parent. Otherwise, the result of GetContainmentTree is undefined.__ + + + + + + + + + + GetContainmentTreeResponse is the response to a msg:GetContainmentTree MESSAGE. + + + + + + + + ContainmentTreeInfo as described in pm:ContainmentTree. + +__R5031: The result SHALL contain CONTAINMENT TREE information of all ELEMENTs that are matched by msg:GetContainmentTree/msg:HandleRef.__ + +__R5032: If no HANDLE reference is provided, all CONTAINMENT TREE ELEMENTs on MDS level SHALL be returned.__ + + + + + + + + + + GetDescriptor is the request to a msg:GetDescriptorResponse MESSAGE. It is proposed to be used to resolve the HANDLE references that are requested by msg:GetContainmentTree. + + + + + + + + List of HANDLE references that specify which descriptors are requested. + + + + + + + + + + GetDescriptorResponse is the response to a msg:GetDescriptorResponse MESSAGE. + + + + + + + + List of pm:AbstractDescriptor ELEMENTs. + +__R5033: Resulting descriptors SHALL NOT contain child descriptors.__ + +__R5034: The result SHALL contain CONTAINMENT TREE information of all descriptors that are matched by msg:GetDescriptor/msg:HandleRef.__ + +__R5035: If no HANDLE is provided, all descriptors SHALL be returned.__ + + + + + + + + + + + + AbstractMetricReport is a change report that contains updated pm:AbstractMetricState instances. + + + + + + + List of report containers associated to one MDS. + + + + + + + + List of changed pm:AbstractMetricState instances. + + + + + + + + + + + + + + EpisodicMetricReport is an msg::AbstractMetricReport that is delivered episodically. It is sent if at least one pm:AbstractMetricState has changed. It SHALL contain only pm:AbstractMetricState instances where at least one child ELEMENT or ATTRIBUTE have changed. + + + + + + + + + + PeriodicMetricReport is an msg:AbstractMetricReport that is delivered periodically. + + + + + + + + + + + AbstractComponentReport is a change report that contains updated pm:AbstractComponentState instances. + + + + + + + List of report containers associated to one MDS. + + + + + + + + List of changed pm:AbstractComponentState instances. + + + + + + + + + + + + + + EpisodicComponentReport is an msg:AbstractComponentReport that is delivered episodically. It is sent if at least one pm:AbstractComponentState has changed. It SHALL contain only pm:AbstractComponentState instances where at least one child ELEMENT or ATTRIBUTE have changed. + + + + + + + + + + PeriodicComponentReport is an msg:AbstractComponentReport that is delivered periodically. + + + + + + + + + + + AbstractAlertReport is a change report that contains updated pm:AbstractAlertState instances. + + + + + + + List of report containers associated to one MDS. + + + + + + + + List of changed pm:AbstractAlertState instances. + + + + + + + + + + + + + + EpisodicAlertReport is an msg:AbstractAlertReport that is delivered episodically. It is sent if at least one pm:AbstractAlertState has changed. It SHALL contain only pm:AbstractAlertState instances where at least one child ELEMENT or ATTRIBUTE have changed. + + + + + + + + + + PeriodicAlertReport is an msg:AbstractAlertReport that is delivered periodically. + + + + + + + + + + + AbstractOperationalStateReport is a change report that contains updated pm:AbstractOperationState instances. + + + + + + + List of report containers associated to one MDS. + + + + + + + + List of changed pm:AbstractOperationState instances. + + + + + + + + + + + + + + EpisodicOperationalStateReport is an msg:AbstractOperationalStateReport that is delivered episodically. It is sent if at least one pm:AbstractOperationState has changed. It SHALL contain only pm:AbstractOperationState instances where at least one child ELEMENT or ATTRIBUTE have changed. + + + + + + + + + + PeriodicOperationalStateReport is an msg:AbstractOperationalStateReport that is delivered periodically. + + + + + + + + + + + SystemErrorReport is an msg:AbstractReport. It is sent episodically when a system error has occurred. + + + + + + + + List of report containers associated to one MDS. Every report part contains an error code plus an OPTIONAL, human-readable description. + + + + + + + + CODED VALUE of the error. + + + + + Additional textual information. ErrorInfo SHALL NOT make use of the pm:LocalizedTextType/@Ref ATTRIBUTE. + + + + + + + + + + + + + + + + DescriptionModificationType designates the modification mode when a msg:DescriptionModificationReport is sent. + + + + + Crt = Created. Indicates that the object transmitted by a modification MESSAGE has been created, i.e. inserted into the MDIB. + + + + + Upt = Updated. Indicates that the object transmitted by a modification MESSAGE has been updated. + + + + + Del = Deleted. Indicates that the object transmitted by a modification MESSAGE has been deleted, i.e. removed from the MDIB. + + + + + + + DescriptionModificationReport is an msg:AbstractReport that is delivered episodically. It is sent if at least one pm:AbstractDescriptor has changed. It SHALL contain only pm:AbstractDescriptor instances where at least one child ELEMENT or ATTRIBUTE have changed, i.e., inserted, updated, or deleted. + + + + + + + + + + List of report containers associated to one MDS. + + + + + + + Descriptor that was inserted into, updated from or deleted from the MDIB. The mode is stored in the ./@ModificationType ATTRIBUTE. + +__R5024: Descriptors in this list SHALL not include nested descriptors.__ + +NOTE—If nested descriptors are also modified, then they can be included as children of the report part. + +__R5025: Updated descriptors SHALL be ordered in the way that parent descriptors appear before child descriptors.__ + +__R5046: If a parent descriptor is deleted, then all child descriptors of that parent SHALL communicated as deleted in advance.__ + + + + + The descriptor's corresponding state(s). + +__R5051: If ./@ModificationType is "Crt", then the descriptor version referenced by State SHALL match the descriptor given in ./Descriptor.__ + +__R5052: If ./@ModificationType is "Upt", then the descriptor version referenced by State SHALL match the descriptor given in ./Descriptor.__ + +__R5053: If ./@ModificationType is "Del", then State SHALL be omitted from the MESSAGE.__ + + + + + + The HANDLE reference of the parent descriptor. The HANDLE reference SHALL be empty if an pm:MdsDescriptor is inserted, updated or deleted. + + + + + Determines if the descriptor stored in ./msg:Descriptor has been inserted into, updated from or deleted from the MDIB. The implied value SHALL be "Upt". + + + + + + + + + + + + + + + The WaveformStream MESSAGE is sent in order to transmit a set of samples of one or more waveforms. + + + + + + + + State represents a list of sample arrays of a waveform. + + + + + + + + + + The ObservedValueStream MESSAGE is sent in order to transmit observed values of one or more waveforms. This object MAY be used for optimized waveform value transmission. + +__R5026: If ObservedValueStream is supported, any changes to the observed value of pm:RealTimeSampleArrayMetricState SHALL be reported by ObservedValueStream while other changes are reported through pm:WaveformStream.__ + + + + + + + + + A stream ELEMENT that contains observed values of a stream-able state. + + + + + + + Handle reference to the descriptor the observed values belong to. + + + + + Version number of the state. The implied value SHALL be "0". + + + + + + + + + + + + + The method on how it is retrieve the information about a state. + + + + + The CONTAINMENT TREE ENTRY is retrievable via a get request. Use the corresponding get MESSAGE. + + + + + Per = Periodic. The CONTAINMENT TREE ENTRY is retrievable via a periodic event report. Use the corresponding periodic event report MESSAGE (e.g., pm:PeriodicMetricReport). + + + + + Ep = Episodic. The CONTAINMENT TREE ENTRY is retrievable via an episodic event report. Use the corresponding episodic event report MESSAGE (e.g., pm:EpisodicMetricReport). + + + + + Strm = Stream. The CONTAINMENT TREE ENTRY is retrievable via a waveform stream. Use the msg:WaveformStream or msg:ObservedValueStream MESSAGE. + + + + + + + Retrievability provides information on how it is possible to access a state. + + + + + + + + + The method on how to retrieve a state. + + + + + The periodicity in which updates can be expected to be communicated as a periodic event. The implied value SHALL be "PT1S". + + + + + + Extension point that SHOULD be included as a pm:AbstractMetricDescriptor extension to describe METRIC retrievability (see msg:RetrievabilityMethod). Since a METRIC might be retrievable by several methods, Retrievability comprises a list of msg:RetrievabilityInfo ELEMENTs. + + + + + + Retrievability information set. + + + + + + diff --git a/sources/history-service/BICEPS_ParticipantModel.xsd b/sources/history-service/BICEPS_ParticipantModel.xsd new file mode 100644 index 00000000..1346d1de --- /dev/null +++ b/sources/history-service/BICEPS_ParticipantModel.xsd @@ -0,0 +1,3884 @@ + + + + + This XML schema defines the 'Basic Integrated Clinical Environment Protocol Specification' (BICEPS) that is a Domain Information Model (DIM) for point of care medical device communication. It encompasses the device model and the corresponding messages. This XML Schema is based on the ISO/IEEE 11073-10201 Domain Information Model standard, which belongs to the "Point-of-care medical device communication" standard family in ISO/IEEE 11073. This standard family should not to be confused with the ISO/IEEE 11073 "Personal Health Device" standard family. +While former is based on the standards ISO/IEEE 11073-10101, 11073-10201, 11073-20101, and 11073-30200, the latter is based on ISO/IEEE 11073-20601 and ISO/IEEE 11073-104xx. +The Domain Information model is subdivided into two parts, a static part (referred to as Descriptor) that provides general information about the the hardware specification of the elements and a dynamic part (referred to as State) that may change during time. + + + + + Root object that comprises the capability description of the represented MDSs in pm:MdDescription (descriptive part) as well as the current state in pm:MdState (state part). + + + + + + + + + + + MdDescription is the root container to represent the descriptive part of the MDIB. The descriptive part describes the capabilities provided by a POC MEDICAL DEVICE, e.g., which measurements, alerts and settings it provides. As the descriptive part does not change as frequently as the state part, it is well-known as the (almost) static part of the MDIB. The MdDescription's counterpart is pm:MdState. + + + + + + List of MDSs that are contained in the MDIB. + + + + + + Version number of the description. The version number is incremented by one every time the descriptive part changes. The implied value SHALL be "0". + + + + + + MdState is the root container to represent the state part of the MDIB. The state part describes the values provided by a POC MEDICAL DEVICE, e.g., which measurement or alert values as well as patient demographics it provides. As the state part most often changes very frequently, it is well-known as the dynamic part of the MDIB. The MdState's counterpart is pm:MdDescription. + + + + + + List of states that describe the volatile status of the objects in the MDIB. + + + + + + Version number of the states. The version number is incremented by one every time the state part changes. The implied value SHALL be "0". + + + + + + + Level of validity of a measured value. + + + + + Vld = Valid. A measured value that is correct from the perspective of the measuring device. + + + + + Vldated = Validated Data. A measured value where the validity has been confirmed by an external actor, e.g., an operator, other than the POC MEDICAL DEVICE. + + + + + Ong = Measurement Ongoing. Indicates that a new measurement is just being taken and therefore measured value is not available. + + + + + Qst = Questionable. A measured value where correctness can not be guaranteed. + + + + + Calib = Calibration Ongoing. A measured value where correctness can not be guaranteed, because a calibration is currently going on. + + + + + Inv = Invalid. A measured value that is incorrect from the perspective of the measuring device. + + + + + Oflw = Overflow. A measured value where correctness cannot be guaranteed as it is above all defined technical ranges. + + + + + Uflw = Underflow. A measured value where correctness cannot be guaranteed as it is below all defined technical ranges. + + + + + NA = Not Available. No value can be derived, e.g., if a sensor is not placed correctly. + + + + + + + An unsigned 64-bit integer value that represents a timestamp. + +__R5001: A timestamp SHALL count the milliseconds between the current time and midnight, January 1, 1970 UTC without leap seconds.__ + +__R5002: Timestamps are an optional feature of the MDIB. If anywhere in the MDIB a timestamp is used, the SERVICE PROVIDER SHALL provide a pm:ClockDescriptor ELEMENT.__ + +NOTE 1—Typically all systems assume that a day has 86400 seconds. +NOTE 2—While the unit of time of pm:Timestamp is a millisecond, the granularity of the value depends on the hardware/software system and might be larger (e.g., tens of milliseconds). + + + + + + A version counter to provide versionized MDIB objects. The initial value of a version counter SHALL be "0". + +__R5003: VersionCounter values SHALL never be decremented.__ + + + + + + In contrast to pm:VersionCounter, ReferencedVersion does not represent a version of an MDIB object, but a reference to a particular version of an MDIB object. + + + + + + MdibVersionGroup is a triple populated with a pm:VersionCounter, an instance id (xsd:unsignedLong) and a sequence id (xsd:anyURI). + +Semantics of instance and sequence identifiers relate to WS-Discovery [WS-Discovery]. In contrast to WS-Discovery, in which the instance id is mandatory and the sequence id is optional, this standard defines the sequence id to be REQUIRED and the instance id to be OPTIONAL. + + + + The unique change version number of the MDIB. The implied value of the initial version SHALL be "0". + + + + + SequenceId identifies a sequence within the context of ./@InstanceId. + +__R5029: SequenceId SHALL be compared per RFC 3986 Section 6.2.1 Simple String Comparison [RFC3986].__ + + + + + Value that indicates an instantiation counter. + +__R5004: If InstanceId is used, it SHALL be incremented by a positive value (>= 1) when the SequenceId has changed.__ + +NOTE—This occurs each time the POC MEDICAL DEVICE has gone down, lost state, and came back up again. + +__R5005: InstanceId SHOULD NOT be incremented otherwise than defined in R5004.__ + +NOTE 1—Means to set this value include, but are not limited to: + +- A counter that is incremented on each cold boot +- The boot time of the POC MEDICAL DEVICE, expressed as seconds elapsed since midnight January 1, 1970 + +NOTE 2—The MDIB version's instance id is different to the pm:InstanceIdentifier data type. + + + + + + CodeIdentifier defines an arbitrary CODE identifier with a minimum length of 1 character. + + + + + + + + SymbolicCodeName is a symbolic, programmatic form of a pm:CodeIdentifier term. + +NOTE—SymbolicCodeName is the equivalent of the Reference ID attribute that is defined in IEEE 11073-10101. + + + + + + + + LocalizedTextRef defines a reference to a localized text. + + + + + + + + Content restriction for pm:LocalizedText ELEMENTs. + + + + + + + + LocalizedTextWidth indicates the width of a localized text based on the number of fullwidth characters in order to allow a SERVICE CONSUMER an effective filtering and querying for translations. + +In the following, a line is defined as the content of the text from either the beginning of the text or the beginning of a previous line until the next occurance of period mark, question mark, exclamation mark, or paragraph. + + + + + A line has 4 or less fullwidth characters. + + + + + A line has 8 or less fullwidth characters. + + + + + A line has 12 or less fullwidth characters. + + + + + A line has 16 or less fullwidth characters. + + + + + A line has 20 or less fullwidth characters. + + + + + A line has 21 or more fullwidth characters. + + + + + + + LocalizedText is a bundled ELEMENT to reference texts in different languages or to provide a text in a specific language. + +The goal of text references is to shrink the overall size of the MDIB by only providing a single reference to a text file that translates a text into multiple languages instead of flooding the MDIB with all translated texts. Referenced texts can be requested by the LOCALIZATION SERVICE. If no LOCALIZATION SERVICE exist, the application can make use of LocalizedText to represent a text in a single language. + +__R5047: If ./@Lang and ./@Ref are present, then the text SHALL be only available in the language specified by ./@Lang.__ + +__R5048: If ./@Lang is present and ./@Ref is not present, then ./@Lang SHALL specify the language of the LocalizedText's content. The Text is not available through the LOCALIZATION SERVICE.__ + +__R5049: If ./@Lang is not present and ./@Ref is present, then the text SHALL be available through the LOCALIZATION SERVICE.__ + +__R5050: If ./@Lang and ./@Ref are not present, then the language of the LocalizedText's content is unknown. The text SHALL NOT be available through the LOCALIZATION SERVICE.__ + + + + + + References a text in a localized text file. + +Text references SHALL be unique regardless of any HANDLE name. + + + + + Lang specifies the language of the localized text. + + + + + Version defines the current revision of the referenced text in the localized text file. + +__R5006: Texts might change over time, but references are per definition unique and typically do not change. To check if a text that is referenced by ./@Ref has changed, pm:LocalizedText SHALL include Version if ./@Ref is set. + +NOTE—This saves to query a localized text file if the referencing ELEMENT has changed, but the referenced text has not. If Version is not given, a client has to assume that the text changes every time the referencing ELEMENT changes. In this case, the client is encouraged to query the localized text file on each modification.__ + +__R5007: To keep things simple, every translated text in a localized text file that belongs to a particular reference SHALL share the same version number.__ + +NOTE—From this it follows that if Version has changed, every translation of a referenced text is obsolete even if only a single translation has changed. + + + + + Text width as defined in pm:LocalizedTextWidth. + + + + + + + + In general, in an interoperability format, objects, attributes, and methods are identified by nomenclature codes. CodedValue offers the ability to represent such nomenclature codes. + +Two CodedValue objects C1 and C2 are equivalent, if + +- C1/@Code equals C2/@Code +- C1/@CodingSystem equals C2/@CodingSystem, both with expanded default values +- C1/@CodingSystemVersion equals C2/@CodingSystemVersion +- If there exists a CodedValue object T1 in C1/pm:Translation and a CodedValue object T2 in C2/pm:Translation such that T1 and T2 are equivalent, C1 and T2 are equivalent, or C2 and T1 are equivalent. + +NOTE 1—In case that ./@CodingSystem is not explicitly defined in CodedValue, it is replaced implicitly by a default identifier. The ./@CodingSystem ATTRIBUTE is then called "expanded". +NOTE 2—As prescribed in ./@CodingSystemVersion, a version is set only if a unique version identification by ./@CodingSystem is not possible. Hence, there can be no implicit version mismatch. +NOTE 3—Equivalence between CodedValue objects is not necessarily transitive. + + + + + + + Human-readable name of the CODING SYSTEM that is described by pm:CodedValue/@CodingSystem. + + + + + Multiple OPTIONAL human-readable texts that describe the CODE in more detail. + + + + + Set of alternative or equivalent representations. + + + + + + + + A code as defined by pm:CodedValue/@Code. + + + + + A coding system as defined by pm:CodedValue/@CodingSystem. + + + + + A coding system version as defined by pm:CodedValue/@CodingSystemVersion. + + + + + + + + REQUIRED unique identifier of the CODE in the CODING SYSTEM. + +Example: as "20720" from Block 2, of IEEE 11073-10101:2004, is the id for "MDC_PRESS_AWAY", the context-free CODE (CF_Code10) is "151792" which represents the unique identifier used within IEEE 11073-10101:2004. + + + + + Unique identifier of a CODING SYSTEM that pm:CodedValue/@Code originating from. + +If no CODING SYSTEM is defined, the implied value SHALL be "urn:oid:1.2.840.10004.1.1.1.0.0.1", which refers to ISO/IEC 11073-10101. + +Example: "urn:oid:1.2.840.10004.1.1.1.0.0.1" for the ISO/IEC 11073-10101. + + + + + CodingSystemVersion is a particular version of the CODING SYSTEM defined by pm:CodedValue/@CodingSystem. CodingSystemVersion SHALL be set if multiple versions of the underlying CODING SYSTEM exist and a unique identification of the CODED VALUE is not possible by other means. + +Example: "20041215" for the ISO/IEC 11073-10101:2004, as it is the release date of the standard's first edition. + + + + + See pm:SymbolicCodeName. + + + + + + + An identifier that uniquely identifies a thing or object. + +Examples: object identifiers for medical record numbers, order ids, location ids, etc. InstanceIdentifier is defined in accordance to [InstanceIdentifier]. + +./@Root and ./@Extension of an instance identifier do not identify the type of the object being identified, or the type of the association between the object and the identifier - they only form the identifier itself. The identifier type SHALL be expressed by ./Type. + + + + + + Type designates the type of the instance identifier, e.g., whether it is an MRN, license number, visit number etc. + +Since it is possible that semantic meaning of an instance identifier is comprehensively conveyed using the encompassing XML ELEMENTs, Type is OPTIONAL. + + + + + IdentifierName is a localized human-readable name for the namespace represented in ./@Root. + +NOTE—IdentifierName has no computational value and hence can never modify the meaning of ./@Root. The purpose of IdentifierName is to assist an unaided human interpreter of an instance identifier value to interpret the identifier. Applications ought not to perform any decision-making, matching, filtering or other processing based on this presence or value of this property. It is for display and development assistance only. + + + + + + A unique identifier that guarantees the global uniqueness of the instance identifier. Root alone is allowed to build the entire instance identifier. + +If ./@Extension is present, Root is the unique identifier for the "namespace" of the identifier in ./@Extension. + +In situations where ./@Extension is known, but Root is not known, the implied value of a non-existent Root SHALL match the value defined in R0135. + +NOTE—Example: a POC MEDICAL DEVICE with an attached simple bar code scanner could create a new instance identifier with an unknown root and an extension that is set to the bar code number. Root is then applied later in time. + + + + + + + + + + A character string as a unique identifier within the scope of pm:InstanceIdentifier/pm:Root. +If a non-null Extension exists, pm:InstanceIdentifier/pm:Root specifies a namespace ("assigning authority" or "identifier type"). + +__R5008: Extension MAY be empty if pm:InstanceIdentifier/pm:Root is the complete unique identifier.__ + +__R5009: If pm:InstanceIdentifier/pm:Root is not a complete unique identifier and Extension is not known, then Extension SHALL be populated with a null-flavor "Unknown".__ + +NOTE—How the null-flavor "Unknown" is encoded, depends on the use-case and type of pm:InstanceIdentifier/pm:Root URI. + + + + + + + + + + + A range of decimal values which provides a lower and an upper bound as well as a step width. + + + + + + + The including lower bound of the range. + + + + + The including upper bound of the range. + + + + + The numerical distance between two values in the range of the given upper and lower bound. + + + + + Maximum relative error in relation to the correct value within the given range. + + + + + Maximum absolute error in relation to the correct value within the given range. + + + + + + Measurement describes a measurement and is used only for stateful object attributes that do not have a reference to a descriptor object. + +Example: Weight of a patient. + + + + + + The unit (dimension) of pm:Measurement. + + + + + + The value of pm:Measurement. + + + + + + SafetyClassification allows POC MEDICAL DEVICE manufacturers to limit their responsibility for the provided objects that allow informational use or use in clinical functions. It reflects the quality of the respective data from the risk management perspective of the data provider. + +Enumeration values prefixed with "Med" indicate that the manufacturer has considered a clinical function related to the object in its development process, particularly the risk management, software development, usability, and verification process. + + + + + Inf = Informational. The descriptor and the related state information are intended to be used for information purposes only. They are not intended to be used in clinical functions. + + + + + MedA = Medical Class A. The descriptor and related state information are intended to be used in clinical functions, specifically for general display in order to support patient and device monitoring. The displayed data is not intended to be used as sole source for diagnostic or therapeutic decisions. Deviations from this intended use are in the sole responsibility of the SERVICE CONSUMER. + + + + + MedB = Medical Class B. The descriptor and related state information are intended to be used in clinical functions. The manufacturer has specified and considered a specific intended use for the data, which could result in non-serious injury. Deviations from this intended use are in the sole responsibility of the SERVICE CONSUMER. + + + + + MedC = Medical Class C. The descriptor and related state information are intended to be used in clinical functions. The manufacturer has specified and considered a specific intended use for the data, which could result in serious injury. Deviations from this intended use are in the sole responsibility of the SERVICE CONSUMER. + + + + + + + Activation state of a component, i.e., any type that is derived from pm:AbstractComponentState and pm:AbstractMetricState. + + + + + The component is operating. + + + + + NotRdy = Not Ready. The component is not ready to be operated and not operating, but initialization is ongoing. + + + + + StndBy = Stand By. The component is ready to be operated, but not currently operating. + + + + + The component is inactive. + + + + + Shtdn = Shutdown. The component is ceasing from being ready to be operated or operating, but not yet inactive. + + + + + Fail = Failure. The component has detected a failure and is not ready to be operated. + + + + + + + List of regions in which a DEVICE COMPONENT is approved to be operated. If the list does not contain any entries, then the DEVICE COMPONENT is not approved for any region. + + + + + Region in which the DEVICE COMPONENT is approved to be operated. + +NOTE—See also: https://unstats.un.org/unsd/methodology/m49/ + + + + + + + The current region information that is configured for a component. The preferred root SHOULD be https://unstats.un.org/unsd/methodology/m49, which addresses the "Standard country or area codes for statistical use (M49)". Example: a root of "https://unstats.un.org/unsd/methodology/m49" with an extension value of "276" addresses Germany. + + + + + + + + + A HANDLE is used to efficiently identify an object in the MDIB. + + + + + + + + HandleRef describes a HANDLE reference. It is used to form logical connections to ELEMENTs that possess a pm:Handle ATTRIBUTE. + +Example: a METRIC state is associated with a METRIC descriptor (pm:AbstractDescriptor/@Handle) by means of an ATTRIBUTE of type pm:HandleRef (see pm:AbstractState/@DescriptorHandle). + + + + + + + + PhysicalConnectorInfo defines a number in order to allow to guide the clinical user for a failure, e.g., in case of a disconnection of a sensor or an ultrasonic handpiece. + + + + + + A human-readable label that describes the physical connector. + + + + + + Number designates the connector number of the physical connector. + + + + + + AbstractDescriptor defines foundational meta information of any object that is included in the descriptive part of the MDIB. Any descriptor object is derived from pm:AbstractDescriptor. The AbstractDescriptor's counterpart is pm:AbstractState. + + + + + + The descriptor type that provides specific information about the descriptor instance, e.g., an pm:MdsDescriptor that designates an anesthesia workstation. + + + + + + The unique HANDLE of the descriptor. The HANDLE can be used by pm:AbstractState to reference the descriptor. + + + + + DescriptorVersion is incremented by one with every descriptor modification. The implied value for the initial descriptor instance SHALL be "0". + + + + + The safety classification of the data that is described with this descriptor. The implied value SHALL be "Inf". + + + + + + AbstractState defines foundational meta information of any object that is included in the state part of the MDIB. Any state object is derived from pm:AbstractState. The pm:AbstractState's counterpart is pm:AbstractDescriptor. + + + + + + + StateVersion is incremented by one with every state modification. The implied value for the initial state instance SHALL be "0". + + + + + The HANDLE reference of a descriptor to which the state belongs. + + + + + The current version of the descriptor to that the state belongs to. The implied value for the initial state instance SHALL be "0". + + + + + + AbstractMultiState is derived from pm:AbstractState. In contrast to pm:AbstractState, AbstractMultiState possesses a HANDLE name. The HANDLE name uniquely identifies the state, which is required if the relation to a descriptor is ambiguous. + + + + + + + A CODED VALUE that allows to categorize a multi state inside the set of multi states that belong to a descriptor of a certain type. +NOTE—By using the pm:AbstractMultiState/pm:Category it is possible to represent, e.g., different steps in a workflow (multiple states) with different association states. This is in contrast to the pm:WorkflowContextDescriptor/pm:Type where different workflow types are described that the POC MEDICAL DEVICE supports. See Clause 5.2.6 for more details. + + + + + + A name to uniquely identify the state. + + + + + + + + + AbstractDeviceComponentDescriptor describes a basic DEVICE COMPONENT. + + + + + + + List of production specifications of the component. The production specification describes ELEMENTs such as part numbers, serial numbers, revisions, etc. + + + + + + SpecType is the specification type, such as serial number, part number, hardware revision, software revision, etc. + + + + + ProductionSpec describes the printable string of the production specification ELEMENT. + + + + + Describes the internal component unique identification. This is a provision for manufacturer specific standard components using a private object identifier (OID). + + + + + + + + + + + + AbstractComplexDeviceComponentDescriptor adds an OPTIONAL pm:AlertSystemDescriptor and pm:ScoDescriptor to pm:AbstractDeviceComponentDescriptor. + + + + + + + An OPTIONAL ALERT SYSTEM that supervises conditions for all sublevels in the hierarchy including the ALERT SYSTEM hosting node itself. + + + + + A service control object to define remote control operations. Any pm:AbstractOperationDescriptor/@OperationTarget within this SCO SHALL only reference this or child descriptors within the CONTAINMENT TREE. + +NOTE—In modular systems, dynamically plugged-in modules would typically be modeled as VMDs. Such VMDs potentially have their own SCO. In every other case, SCO operations are modeled in pm:MdsDescriptor/pm:Sco. + + + + + + + + + Calibration state of a component. + + + + + No = Not Calibrated. Defines that a component is not calibrated. + + + + + Req = Calibration Required. Defines that a component requires a calibration. + + + + + Run = Running. Defines that a calibration for a component is running. + + + + + Cal = Calibrated. Defines that a component is calibrated. + + + + + Oth = Other. The calibration state is defined by other means. + + + + + + + Type of a calibration method. + + + + + Offset calibration. + + + + + Gain calibration + + + + + Two point calibration. + + + + + Unspecified calibration type. + + + + + + + Provides information in terms of component calibration. By default, it only maintains a calibration flag. + + + + + + CalibrationDocumentation provides information regarding necessary or performed calibration steps including potential calibration results like accuracy. + + + + + + Human-readable documentation of a CalibrationDocumentation entry. + + + + + + + + + + + Code that semantically describes the calibration result. + + + + + Measurement that represents the value related to that specific calibration result. + + + + + + + + + + + + ATTRIBUTE definition of ComponentCalibration. + + + + + Type of the calibration. The implied value SHALL be "Unspec". + + + + + Time of the calibration. + + + + + + State of a component that is part of an MDS. + + + + + + + Provides information about the last calibration that was performed. + + + + + Provides information about the next calibration that will be performed. + + + + + The physical connector number for this component, see pm:PhysicalConnectorInfo. + + + + + + See pm:ComponentActivation. The implied value SHALL be "On". + + + + + OPTIONAL amount of operating hours (e.g., an OR light). There are no further semantics defined. + + + + + OPTIONAL amount of operarting cycles, e.g., the number of measurements taken within the component. There are no further semantics defined. + + + + + + + + AbstractComplexDeviceComponentState acts as a base class for DEVICE COMPONENT states that have alerting and SCO capabilities. + + + + + + + + MdsDescriptor represents an MDS that in turn represents a POC MEDICAL DEVICE such as an anesthesia workstation. It contains an abstraction of the hardware specification of a POC MEDICAL DEVICE plus a list of VMDs, contextual information and clock object. + +NOTE—The IEEE 11073-10201 has different specializations that are all representable by MdsDescriptor. + + + + + + + Describes POC MEDICAL DEVICE meta data. + + + + + + + UDI fragments as defined by the FDA. + +NOTE 1—The amount of ELEMENTs is unbounded in order to support the provision of UDIs from different jurisdictions. +NOTE 2—If needed, the UDI's distinct identification code can be inserted as an extension to the MetaData object. + + + + + + + A mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device. + + + + + UDI human readable form as printed on the barcode. + + + + + Organization that has issued the UDI. + + + + + Jurisdiction that the UDI is valid for. If no value is defined, then the UDI is not bound to a specific jurisdiction. + + + + + + + + OPTIONAL lot number of manufacturer. + + + + + OPTIONAL texts that describe the manufacturer name. + + + + + OPTIONAL date when the device was made. + + + + + OPTIONAL date and time of expiry of the device (if applicable). + + + + + OPTIONAL texts that describe the model name. + + + + + OPTIONAL model number of the MDS. + + + + + OPTIONAL serial numbers of the system. + + + + + + + + See pm:SystemContextDescriptor. + + + + + If supported, an MDS inserts date/time capabilities here. + + + + + If supported, an MDS inserts battery capabilities here. + + + + + List of regions in which the the MDS is approved to be operated. If the list does not contain any entries, then the MDS is not approved for any region. If the list is not specified, then the MDS is approved to be operated in any region. + + + + + Ordered list of VMDs that belongs to the MDS. The list is ordered by the position of the VMD in the list where the ELEMENT with a lower list index has a higher clinical relevance than any entry with a higher list index. The SERVICE PROVIDER defines the clinical relevance and MAY reorder the list at any time. + + + + + + + + + MdsOperatingMode defines the interpretation constraints of the data that is provided by an MDS. + + + + + Nml = Normal. The POC MEDICAL DEVICE operates in a mode that supports the fulfillment of its clinical functions. + + + + + Dmo = Demo. The POC MEDICAL DEVICE operates in a mode that is intended for demonstration purposes only. Arbitrary values are generated. + + + + + Srv = Service. The POC MEDICAL DEVICE operates in a mode that is intended for services purposes only. + + + + + MTN = Maintenance. The POC MEDICAL DEVICE operates in a mode that is intended for maintenance purposes only. + + + + + + + Definition of the state of an pm:MdsDescriptor. + + + + + + + The current region information that is configured for the MDS. See also pm:OperatingJurisdiction. OperatingJurisdiction SHALL NOT be inserted if there is no pm:MdsDescriptor/pm:ApprovedJurisdictions list present. + + + + + + The current locale information that is configured for an MDS in accordance with RFC 5646 (see http://tools.ietf.org/html/rfc5646). For example, this is the language that is used for display purposes on the UI. The implied value SHALL be "en". + + + + + The operating mode of an MDS. Typically, an MDS operates in normal mode, so the implied value SHALL be "Nml". + + + + + + + + VmdDescriptor describes a VMD. A VMD is an abstraction for a module (medical-related subsystem) of an MDS. According to IEEE 11073-10201, an MDS with one VMD is a single purpose POC MEDICAL DEVICE in contrast to an MDS with multiple VMDs that has multiple purposes. + +Example of a multiple purpose POC MEDICAL DEVICE: an anesthesia workstation (one MDS) with a ventilation unit (one VMD), a patient monitoring unit (another VMD), and gas delivery/monitor system (another VMD). In the IEEE 11073-10201 a VMD might not be a hardware module, it also can be pure software. + + + + + + + List of regions in which the the VMD is approved to be operated. If the list does not contain any entries, then the VMD is not approved for any region. If the list is not specified, then the VMD is approved to be operated in any region. + + + + + Ordered list of CHANNELs that allow hierarchical information organization of METRICs or ALERT SYSTEMs. The list is ordered by the position of the CHANNEL in the list where the ELEMENT with a lower list index has a higher clinical relevance than any entry with a higher list index. The SERVICE PROVIDER defines the clinical relevance and MAY reorder the list at any time. + + + + + + + + + The state of a VMD. + + + + + + + The current region information that is configured for the VMD. See also pm:OperatingJurisdiction. OperatingJurisdiction SHALL NOT be inserted if there is no pm:VmdDescriptor/pm:ApprovedJurisdictions list present. + + + + + + + + + ChannelDescriptor describes a CHANNEL to group METRICs and alerts. It is used for organizational purposes only. + +Example: an example would be a blood pressure VMD with one CHANNEL to group together all METRICs that deal with the blood pressure (e.g., pressure value, pressure waveform). A second CHANNEL object could be used to group together METRICs that deal with heart rate. + + + + + + + List of METRICs that are grouped into the CHANNEL. The list is ordered by the position of the METRIC in the list where the ELEMENT with a lower list index has a higher clinical relevance than any entry with a higher list index. The SERVICE PROVIDER defines the clinical relevance and MAY reorder the list at any time. + + + + + + + + + The state of a CHANNEL. + + + + + + + + + + AbstractAlertDescriptor acts as a base class for all alert descriptors that contain static alert meta information. + + + + + + + + AbstractAlertState acts as a base class for all alert states that contain dynamic/volatile alert meta information. + + + + + + See pm:AlertActivation. + + + + + + + + + The activation state of any ALERT SYSTEM ELEMENT, i.e., pm:AlertSystemState, pm:AlertConditionState, pm:LimitAlertConditionState, and pm:AlertSignalState. + +Special meanings MAY apply depending on the ALERT SYSTEM ELEMENT. + + + + + The ALERT SYSTEM ELEMENT is operating. + + + + + The ALERT SYSTEM ELEMENT is not operating. + + + + + Psd = Paused. The ALERT SYSTEM ELEMENT is temporarily not operating. + + + + + + + Defines a tuple consisting of an pm:AlertSignalManifestation and an pm:AlertActivation to describe the alert activation state of a certain ALERT SIGNAL manifestation. + +Example: ./@Manifestation is "Aud" and ./@State is "Psd" means that any audible alert activation is paused. + + + + + See pm:AlertSignalManifestation. + + + + + See pm:AlertActivation. + + + + + + AlertSystemDescriptor describes an ALERT SYSTEM to detect ALERT CONDITIONs and generate ALERT SIGNALs, which belong to specific ALERT CONDITIONs. + +ALERT CONDITIONs are represented by a list of pm:AlertConditionDescriptor ELEMENTs and ALERT SIGNALs are represented by a list of pm:AlertSignalDescriptor ELEMENTs. + + + + + + + Description of all ALERT CONDITIONs that can be detected by the surrounding ALERT SYSTEM. + + + + + Description of all ALERT SIGNALs that MAY be generated by the surrounding ALERT SYSTEM as a consequence of a detected ALERT CONDITIONs. + + + + + + The maximum number of physiological alarm conditions that can be present at a point of time. If no value is given, an unlimited number SHALL be assumed. + + + + + The maximum number of technical alarm conditions that can be present at a point of time. If no value is given, an unlimited number SHALL be assumed. + + + + + The self check time period defines the value after which a self test of the ALERT SYSTEM is performed. This self check period MAY be used to detect if an ALERT SYSTEM is still operating. + + + + + + + + AlertSystemState contains the dynamic/volatile information of an ALERT SYSTEM. See pm:AlertSystemDescriptor for static information. + + + + + + + Describes a compound ALERT SIGNAL activation for local audible, visible, and tangible ALERT SIGNALs within the ALERT SYSTEM. + +If a SystemSignalActivation SSA is set for any ALERT SIGNAL manifestation within an ALERT SYSTEM, then the following rules SHALL apply for any local ALERT SIGNAL ASi within the ALERT SYSTEM where SSA/@Manifestation is equal to ASi/@Manifestation: + +- If SSA/@State is "On", any ASi/@ActivationState is "On", "Off", or "Psd" +- If SSA/@State is "Psd", any ASi/@ActivationState is "Psd" or "Off" +- If SSA/@State is "Off", all ASi/@ActivationState are "Off" +- If any ASi/@ActivationState is "On" then SSA/@State is "On" +- If all ASi/@ActivationState are "Psd" then SSA/@State is "Psd" +- If all ASi/@ActivationState are "Off" then SSA/@State is "Off" + +NOTE 1—A local ALERT SIGNAL is an ALERT SIGNAL where pm:AlertSignalState/@Location is set to "Loc", whereas a remote ALERT SIGNAL is an ALERT SIGNAL where pm:AlertSignalState/@Location is set to "Rem". +NOTE 2—Remote signals are not considered by SystemSignalActivation. + + + + + + Timepoint when the ALERT SYSTEM has performed a self check the last time. LastSelfCheck SHALL be updated on every pm:AlertSystemDescriptor/pm:SelfCheckPeriod. + + + + + Number of self checks performed. + +This specification does not prescribe the origin of the value, i.e., whether the counter is incremented since the last boot or whether the counter represents the self checks ever performed. + + + + + List of HANDLE references to the present physiological alarm conditions that have been determined by the ALERT SYSTEM. + + + + + List of HANDLE references to the present technical alarm conditions that have been determined by the ALERT SYSTEM. + + + + + + + + + Cause information for an ALERT CONDITION. + + + + + + OPTIONAL information on how to remedy the ALERT CONDITION. + + + + + OPTIONAL human-readable texts that describe the cause. + + + + + + + Remedy information for a cause of an ALERT CONDITION. + + + + + + OPTIONAL human-readable texts that describe the remedy information. + + + + + + + AlertConditionKind categorizes ALERT CONDITIONs by their origin. + + + + + Phy = Physiological. The condition arises from a patient-related variable. Examples: "blood pressure high" or "minute volume low". + + + + + Tec = Technical. The condition arises from a monitored equipment-related or ALERT SYSTEM-related variable. Examples: "battery low" or "sensor unplugged". + + + + + Oth = Other. The condition arises from another origin, e.g., equipment-user advisory conditions like "room temperature high". + + + + + + + AlertConditionPriority categorizes ALERT CONDITIONs into priorities. + +AlertConditionPriority can be used to distinguish the severity of the potential or actual hazard that exists if an ALERT CONDITION is present. + +NOTE—The priority is assigned through risk analysis. + + + + + Lo = Low. Awareness of the ALERT CONDITION is required. + + + + + Me = Medium. Prompt response to remove the ALERT CONDITION is required. + + + + + Hi = High. Immediate response to remove the ALERT CONDITION is required. + + + + + No awareness of the ALERT CONDITION is required. + + + + + + + An ALERT CONDITION contains the information about a potentially or actually HAZARDOUS SITUATION. + +Examples: a physiological alarm limit has been exceeded or a sensor has been unplugged. + + + + + + + A list of HANDLE references to sources (e.g., METRICs) that cause the ALERT CONDITION. + +Example if a source is present: the heart rate METRIC is the source for a "heart rate high" ALERT CONDITION. +Example if no source is present: a "cable disconnection" ALERT CONDITION has no source. + + + + + Information about possible causes if the ALERT CONDITION is present. + + + + + + See pm:AlertConditionKind. + + + + + See pm:AlertConditionPriority. + +NOTE—If the ATTRIBUTE pm:AlertConditionState/@ActualPriority is present, the priority defined for pm:AlertConditionDescriptor MAY not reflect the current severity of the potential or actual hazard that exists if the ALERT CONDITION is present. + + + + + DefaultConditionGenerationDelay is the period that describes delay from the physical fullfilment of an ALERT CONDITION to the generation of the ALERT CONDITION on the POC MEDICAL DEVICE. The implied value SHALL be "PT0S". + + + + + Indicates if an alert condition can escalate from one priority to another. + + + + + + Lo = Low. Alert condition can escalate to low priority. + + + + + Me = Medium. Alert condition can escalate to medium priority. + + + + + Hi = High. Alert condition can escalate to high priority. + + + + + + + + Indicates if an alert condition can deescalate from one priority to another. + + + + + + Me = Medium. Alert condition can deescalate to medium priority. + + + + + Lo = Low. Alert condition can deescalate to low priority. + + + + + No = None. Alert condition can deescalate to condition with no priority. + + + + + + + + + + + A list of HANDLE references that point to ALERT CONDITIONs. + + + + + + AlertConditionState contains the dynamic/volatile information of an ALERT CONDITION. See pm:AlertConditionDescriptor for static information. + + + + + + ActualConditionGenerationDelay overrides pm:AlertConditionDescriptor/@DefaultConditionGenerationDelay. + + + + + The current priority of the ALERT CONDITION that has been modified by an escalation or de-escalation process. + +NOTE—If this ATTRIBUTE is present in an pm:AlertConditonState ELEMENT, the related pm:AlertConditionDescritptor/pm:Priority ELEMENT MAY NOT reflect the current severity of the potential or actual hazard that exists if this ALERT CONDITION is present. + + + + + The rank is an optional ATTRIBUTE allowing finer distinction of ALERT CONDITION priorities. A ranking is a relationship between a set of items such that, for any two items, the first is either "ranked higher than", "ranked lower than" or "ranked equal to" the second. + + + + + The Presence ATTRIBUTE is set to "true" if the ALERT CONDITION has been detected and is still present. Otherwise it is set to "false". The implied value SHALL be "false". + + + + + Timepoint when the ALERT CONDITION has changed its presence the last time. + + + + + + + + LimitAlertConditionDescriptor is a specialization of an ALERT CONDITION that is active if at least one limit for a referenced METRIC has been violated. + + + + + + + The maximum possible range for the limit bounds. + +Example: the ECG values can be measured in a specific range. At some point the measured values are afflicted with noise, which makes them not valid for limits. Therefore, the maximum allowed range can be restricted. + +The unit of the limits in pm:Range SHALL be the unit of the referenced pm:AlertConditionDescriptor/pm:Source. + + + + + + AutoLimitSupported indicates whether (true) or not (false) a limit ALERT CONDITION provides support for automatic limit adaption. The implied value SHALL be "false". + + + + + + + + Indicates which limits of a pm:LimitAlertCondition ELEMENT are monitored to trigger ALERT SIGNALs. + + + + + Both alert limits are monitored. + + + + + LoOff = Low-Off. Low-limit violation detection is either currently turned off if the state possesses a low-limit value or is not supported at all. + + + + + HiOff = Hi-Off. High-limit violation detection is either currently turned off if the state possesses a high-limit value or is not supported at all. + + + + + No alert limits are monitored. + +NOTE—This flag is not equal to the activation state "Off" that pm:AlertConditionState/@ActivationState provides, although the result w.r.t. to alert signalization is the same. + + + + + + + A state of a limit ALERT CONDITION. + + + + + + + Limit values for the pm:LimitAlertConditionState type. + +The unit of the limits in pm:Range SHALL be the unit of the referenced pm:AlertConditionDescriptor/pm:Source. + + + + + + Monitored alert limits of the limit ALERT CONDITION. See pm:AlertConditionMonitoredLimits + +NOTE—If the pm:AlertConditionState/@ActivationState ATTRIBUTE is not set to "On", the presence of the limit ALERT CONDITION is not detected. From a consumer perspective this is equivalent to the case when the pm:AlertConditionState/@ActivationState ATTRIBUTE is "On" and pm:AlertConditionState/@MonitoredAlertLimits is "None". The difference is that in the latter case the source for the ALERT CONDITION is still supervised, but the presence flag is not generated even if the limits are violated. + + + + + Indicates if the limits for the limit ALERT CONDITION are adjusted automatically. + +"On": limit is adjusted automatically +"Off": limit is not adjusted automatically +"Psd": limit is temporarily not adjusted automatically + + + + + + + + + AlertSignalManifestation categorizes ALERT SIGNALs by the way they can be recognized by the alerted human, e.g., the nurse. + + + + + Aud = Audible. The ALERT SIGNAL manifests in an audible manner, i.e., the alert can be heard. Example: an alarm sound. + + + + + Vis = Visible. The ALERT SIGNAL manifests in a visible manner, i.e., the alert can be seen. Example: a red flashing light. + + + + + Tan = Tangible. The ALERT SIGNAL manifests in a tangible manner, i.e., the alert can be felt. Example: vibration. + + + + + Oth = Other. The ALERT SIGNAL manifests in a manner not further specified. + + + + + + + AlertSignalDescriptor represents an ALERT SIGNAL. An ALERT SIGNAL contains information about the way an ALERT CONDITION is communicated to a human. It is generated by an ALERT SYSTEM to indicate the presence or occurrence of an ALERT CONDITION. + +Example: a signal could be a lamp (see pm:AlertSignalDescriptor/pm:Manifestation) on a remote POC MEDICAL DEVICE, such as the nurses handheld device (see pm:AlertSignalDescriptor/pm:SignalDelegationSupported), which starts flashing when the heart rate is exceeding 150bmp (see pm:AlertSignalDescriptor/pm:ConditionSignaled) for more than 2 seconds (see pm:AlertSignalDescriptor/pm:DefaultSignalGenerationDelay), and keeps flashing until the nurse confirms the alarm, even if the alarm condition is not present anymore (see pm:AlertSignalDescriptor/pm:Latching). + + + + + + Reference to an ALERT CONDITION communicated by the ALERT SIGNAL. The ALERT CONDITION signaled has to be in the same ALERT SYSTEM or in an ALERT SYSTEM that is underneath the ALERT SYSTEM of this ALERT SIGNAL in the CONTAINMENT TREE. + +Example: assume an MDS possesses two VMDs and an ALERT SYSTEM A, and each of these VMDs possess itself an ALERT SYSTEM (B and C). An ALERT SIGNAL from the ALERT SYSTEM A of the MDS is allowed to reference an ALERT CONDITION from the ALERT SYSTEMs A, B and C. In contrast to this an ALERT SIGNAL from the ALERT SYSTEM B is allowed to reference only ALERT CONDITIONs from the ALERT SYSTEM B and not from the ALERT SYSTEM A or C. + + + + + See pm:AlertSignalManifestation. + + + + + An ALERT SIGNAL is latching if it outlives its triggering ALERT CONDITION until it is stopped by deliberate action. + +Example: if the patient's heart rate exceeds a given limit for a certain time, but then normalizes such that the ALERT CONDITION no longer exists, it might be desirable to keep the ALERT SIGNAL alive until, e.g., the nurse confirms it. Otherwise the ALERT CONDITION could pass unnoticed. + + + + + DefaultSignalGenerationDelay is the default period from the onset of an ALERT CONDITION to the generation of the ALERT SIGNAL. The implied value SHALL be "PT0S". + +Example: if the heart rate exceeds a limit periodically as the actual rate oscillates around the limit value, it might be desirable to not directly generate the ALERT SIGNAL whenever the limit is exceeded, but to wait for the given delay first. + +In the case of a FALLBACK ALERT SIGNAL, DefaultSignalGenerationDelay is the default period of time from when a PARTICIPANT last retriggered the SetAlertStateOperation to the generation of the FALLBACK ALERT SIGNAL. + + + + + OPTIONAL minimum delay of pm:AlertSignalState/@ActualSignalGenerationDelay. + + + + + OPTIONAL maximum delay of pm:AlertSignalState/@ActualSignalGenerationDelay. + + + + + SignalDelegationSupported is set to "true" to indicate if the signal can be generated at another PARTICIPANT as primary ALERT SIGNAL, otherwise "false". The implied value SHALL be "false". + + + + + AcknowledgementSupported is set to "true" to indicate if the ALERT SIGNAL supports acknowledgment. The implied value SHALL be "false". + + + + + Indicates the acknowledgment timeout if the signal supports acknowledgment. If no duration is defined, an indefinite acknowledgment timeout SHALL be supported. + + + + + + + + Generation state of an ALERT SIGNAL. + + + + + Indicates that an ALERT SIGNAL is currently generated. + + + + + Indicates that an ALERT SIGNAL is currently not generated. + + + + + Latch = Latched. "Latched" indicates that an ALERT SIGNAL is currently generated even if the ALERT CONDITION is no longer present. + + + + + Ack = Acknowledged. "Acknowledged" indicates that an ALERT SIGNAL is currently not generated due to an acknowledgment even if the ALERT CONDITION is still present. Acknowledged signals are those, where an auditory ALERT SIGNAL that is related to a currently active ALERT CONDITION, is inactive until the ALERT CONDITION is no longer present. + + + + + + + AlertSignalPrimaryLocation defines where the primary ALERT SIGNAL is generated. + + + + + Loc = Local. The ALERT SIGNAL is perceivable on the machine where the ALERT CONDITION has been detected. + + + + + Rem = Remote. The ALERT SIGNAL is perceivable on a remote machine. + + + + + + + AlertSignalState contains the dynamic/volatile information of an ALERT SIGNAL. See pm:AlertSignalDescriptor for static information. + + + + + + ActualSignalGenerationDelay overrides pm:AlertSignalDescriptor/@DefaultSignalGenerationDelay. + + + + + See pm:AlertSignalPresence. The implied value SHALL be "Off". + + + + + See pm:AlertSignalPrimaryLocation. The implied value SHALL be "Loc". + + + + + The slot is a 0-based index that allows a prioritization of the ALERT SIGNAL w.r.t. signal tangibility. The Slot SHOULD be used if the medium for signal generation has only a limited capability of parallel signal generation. The smaller the slot index, the higher is the priority in generation of the signal. + +Example: if a signal is audible and there are different audio signals for different ALERT SIGNALs, and more than one ALERT SIGNAL has to be generated, the generating system has to decide which of the ALERT SIGNALs it generates as overlaying audio signals might not be desirable. For example, if the first ALERT SIGNAL has a slot number of 0 and the second ALERT SIGNAL has a slot number 1 and both signals are active, than the ALERT SYSTEM generates only the ALERT SIGNAL with the slot number 0. + + + + + + + + + + Indicates the quality of a determined value, where 0 means lowest quality and 1 means high quality w.r.t. to the validity level. + + + + + The minimal value that indicates that the signal has the worst quality. + + + + + The maximal value that indicates that the signal has the best quality. + + + + + + + Describes whether METRIC data is generated by real measurements or under unreal settings (demo or test data). + + + + + Real = Real Data. A value that is generated under real conditions. + + + + + Test = Test Data. A value that is arbitrary and is for testing purposes only. + + + + + Demo = Demo Data. A value that is arbitrary and is for demonstration purposes only. + + + + + + + Abstract value of a METRIC. + + + + + + The quality state of the determined value of a METRIC. + + + + + + + + While Validity is "Ong" or "NA", the enclosing METRIC value SHALL not possess a determined value. See also pm:MeasurementValidity. + +NOTE—In case of other values the enclosing METRIC is allowed to possess a determined value. + + + + + Describes whether data is generated by a real METRIC source or is part of any test or demo data. The implied value SHALL be "Real". + + + + + See pm:QualityIndicator. The implied value SHALL be "1". + + + + + + + Annotation of a METRIC state value. + + + + + + + The CODED VALUE that describes the annotation of the ELEMENT. + +Example: attach triggers in waveform curves. + + + + + + + + + Time when measurement activity was started. + + + + + Time when measurement activity was stopped. + + + + + Time when determined value has been derived from measurement. + + + + + + Numeric value of a METRIC state. + + + + + + + + + + + + String value of a METRIC state. + + + + + + + + + + + + Defines the real-time sample array value type comprising a whitespace separated list of decimal numbers. + + + + + + Type that contains sequences of values, i.e., sample arrays. + +The ./pmMetricQuality ELEMENT relates to all samples. + +NOTE 1—pm:Timestamp (see base: pm:AbstractMetricValue) refers to the first value of the array. The individual timestamps of the values can thus be computed from the sample rate (see pm:RealTimeSampleArrayMetricDescriptor). +NOTE 2—If ./pmMetricQuality cannot be applied to all samples due to, e.g., some invalid values, a SERVICE PROVIDER can decide to set ./pmMetricQuality/@Validity to "Qst" or "Inv". + + + + + + + Annotations MAY only apply to specific values in the real-time sample array. The ApplyAnnotation set relates annotations to sample indices. If no ApplyAnnotation ELEMENT is provided all annotations are valid for all values in the context. + + + + + Index number of the annotation that is addressed by the ApplyAnnotation ELEMENT. The index number refers to the (n+1)-nth pm:AbstractMetricValue/pm:Annotation ELEMENT. Hence, numbering is zero-based. + + + + + Index number of the sample the defined annotation refers to. The index number addresses the (n+1)-nth number in the pm:RealTimeSampleArrayValue/pm:Samples ATTRIBUTE. Hence, numbering is zero-based. + + + + + + + + + + + + + + + The METRIC category makes it possible to distinguish between different manifestations of a METRIC like measurements, settings or recommendations. + +Example: if the respiratory rate can be adjusted and the ventilator is smart and provides a recommendation, there are likely be at least three METRICs with a type of "Respiratory Rate": + +- 1 METRIC with MetricCategory set to Measurement. This METRIC is the actual measured value. +- 1 METRIC with MetricCategory set to Setting. This METRIC is the adjustable value. +- 1 METRIC with MetricCategory set to Recommendation. This METRIC is the recommended value derived from some smart algorithm. + + + + + Unspec = Unspecified. None of the categories in MetricCategory is valid for the METRIC. + + + + + Msrmt = Measurement. The METRIC has been derived by measurement. + + + + + Clc = Calculation. The METRIC has been derived by calculation only. + + + + + Set = Setting. The METRIC has a value that is adjustable by some (local or remote) control means. + + + + + Preset = Presetting. The METRIC has a value that is adjustable by some (local or remote) control means. Once the value is adjusted, it remains a Preset until committed, at which point it becomes a setting. + +Related settings MAY be defined by using pm:AbstractMetricDescriptor/pm:Relation. + + + + + Rcmm = Recommendation. The METRIC is a proposal for a setting or presetting. The related setting or presetting MAY be defined by using pm:AbstractMetricDescriptor/pm:Relation. + + + + + + + In some circumstances, e.g., in spot-check situations or when dealing with settings, METRIC values might be entered manually. DerivationMethod provides an enumeration to designate if a METRIC is set automatically or manually. + + + + + Auto = Automatic derivation. The METRIC value is derived by an automatic mechanism (e.g., electronically measured). + + + + + Man = Manual derivation. The METRIC is derived manually by a clinican/human. + + + + + + + Availability of the means that derives the METRIC state. + + + + + Intr = Intermittent. Stopping or ceasing for a time; alternately ceasing and beginning again. + +Example: non-invasive blood pressure measurement. + + + + + Cont = Continuous. Without break, cessation, or interruption; without intervening time. + + + + + + + A list of CONTAINMENT TREE ENTRY handle references. + + + + + + An abstract descriptor for a METRIC. + + + + + + + CODED VALUE for the unit of a METRIC. + +NOTE—If the METRIC is dimensionless and has no unit, use the corresponding CODE from the CODING SYSTEM (e.g., 262656 (4::512) for IEEE 11073-10101 MDC_DIM_DIMLESS). + + + + + OPTIONAL list of CODED VALUEs that describe the body sites where the METRIC is derived from or where it is applied to. + + + + + Relation allows the modelling of relationships between a metric and other containtment tree entries. Related containment tree entries are defined in ./@Entries, whereby the flavor of a relationship can be set up in ./@Kind. + +The cardinality of Relation is zero or more in order to express relations of different flavors for the same METRIC. + +NOTE—Example: some settings of high frequency cutting devices cause changes in measurements (e.g., current form can influences the maximum emitted power). If such a setting is controllable by external means, presumably the SERVICE CONSUMER wants to be able to gain knowledge of affected measurements, which might be then accessed through the Relation element. + + + + + + + Code allows to semantically describe the relationship between the METRIC and the list of related containment tree entries defined in ./pm:Relation/@Entries. + + + + + Identification allow relations to be grouped by instance identifiers. + +NOTE—By that a SERVICE PROVIDER can, e.g., group sets of recommendations or presettings in order to allow easy identification. + + + + + + Kind specifies the relationship between the METRIC and referenced containment tree entries. Referenced containment tree entries are defined in ./pm:Relation/@Entries. + + + + + + Rcm = Recommendation. The METRIC is a recommendation for the containment tree entries defined in ./pm:Relation/@Entries. + + + + + PS = Pre-setting. This METRIC is a pre-setting for the containment tree entries defined in ./pm:Relation/@Entries. + + + + + SST = Set of summary statistics. The METRIC is part of a set of summary statistics for a sample where other METRICs that belong to the summary statistics are defined in ./pm:Relation/@Entries. + + + + + ECE = Effect on containment tree entries. When changed, the METRIC has an effect on the containment tree entries defined in ./pm:Relation/@Entries. If Kind is "ECE", ./pm:Relation/pm:Code SHOULD be set to classify the effect. + + + + + DCE = Derived from containment tree entries. The METRIC is derived from the containment tree entries defined in ./pm:Relation/@Entries. If Kind is "DCE", ./pm:Relation/pm:Code MAY be set to classify the form of derivation. + + + + + Oth = Other. Relation is specified by other means, e.g., ./pm:Relation/pm:Code or extension element. + + + + + + + + List of HANDLE references that relate to the METRIC. The relationship flavor is defined in ./pm:Relation/@Kind. + + + + + + + + See pm:MetricCategory. + + + + + See pm:DerivationMethod. The default value SHALL be applied, depending on pm:AbstractDescriptor/@MetricCategory. + +- If pm:AbstractDescriptor/@MetricCategory is "Set" or "Preset", then the default value of DerivationMethod is "Man" +- If pm:AbstractDescriptor/@MetricCategory is "Clc", "Msrmt", "Rcmm", then the default value of DerivationMethod is "Auto" +- If pm:AbstractDescriptor/@MetricCategory is "Unspec", then no default value is being implied + + + + + See pm:MetricAvailability. + + + + + Maximum duration between start and stop time of measurment. + + + + + Maximum delay to real time. +For a measurement or calculation, the maximum delay to real time is the estimated or known maximum difference between the point in time when a physical variable value has been present and when the value has been computed and is ready for communication. This MAY include an averaging period, but it does not include the communication delay. +For a setting, the maximum delay to real time is the estimated or known maximum difference between the point in time when a setting has been confirmed to be applicable and the time when the setting becomes effective on the actuator. This does not include any communication delay. + + + + + The maximum time interval between two determination steps of determined values under normal conditions. + +- For METRICs with sample arrays as determined values where the availability is not continuous, this is the period of time between two determination steps, e.g., waveform snippets that are periodically determined. +- For METRICs with sample arrays as determined values where the availability is continuous, this is the period of time until the next waveform frame is generated. + +NOTE—The determination period that is defined in the descriptor, might not be the currently active determination period. The active determination period is part of the METRIC state. + + + + + Given the timestamp of a measured METRIC value. The OPTIONAL ATTRIBUTE LifeTimePeriod defines the duration after the measured METRIC value is not useful anymore. + +Example: a non-invasive blood pressure measured intermittently might only be considered useful for 24 hours. Hence, LifeTimePeriod would be "PT24H". + + + + + ActivationDuration defines the maximum time period pm:AbstractMetricState/@Activation is "On" before it changes to any other state. + +NOTE—ActivationDuration is used to indicate the time that a measurement is performed after it has been activated. Example: if automatically measured NIBP is limited to a certain time period only in order to ensure that blood flow in the arm is ensured, then ActivationDuration could have a value of, e.g., five minutes. + + + + + + + + Abstract state of a METRIC. + + + + + + + OPTIONAL list of CODED VALUEs that describe the body sites where the measurement is performed or where the setting is applied to. +This list of body sites MAY provide more details to location of the measurement or setting that are be available at runtime only or that changes at runtime of the POC MEDICAL DEVICE. It SHOULD NOT contradict the location that has been listed in the descriptor. + +Example: if in the descriptor the location "Upper Abdomen" is defined, than the state's body site give more details to where the measurement is performed like "Upper Right Quadrant" and "Liver". + + + + + The physical connector number for this METRIC, see pm:PhysicalConnectorInfo. + + + + + + The activation state of a METRIC. The implied value SHALL be "On". + + + + + OPTIONAL information of the currently active determination repetition time if it is different from the default determination time that is defined in the descriptive part. ActiveDeterminationPeriod is not necessarily the same as the update period of the periodic event service. + + + + + OPTIONAL currently active life-time period that supersedes pm:AbstractMetricDescriptor/@LifeTimePeriod. + + + + + + + + + Specification of a METRIC descriptor type that represents a single numerical measurement and status information. Example: a heart rate measurement. + + + + + + + The technical possible range of determined values. + + + + + + The resolution of the means to determine the METRIC's value. The resolution is the minimum determinable difference between two determined values. + + + + + Timespan from where the measured values are used to determine the METRIC's value by averaging with some algorithm. + +NOTE—The averaging period defined in the descriptor might be not the currently active averaging period. The active averaging period is part of pm:NumericMetricState. + + + + + + + + State of a numeric METRIC. + + + + + + + OPTIONAL current value of the METRIC. + + + + + The physiological reasonable range of determined values. + +NOTE—This is not an alarming range. + + + + + + OPTIONAL information of the currently active time period used to average values if it is different from the default value that is defined in the descriptor. + + + + + + + + A string METRIC represents a textual status or annotation information. + + + + + + + + State of a string METRIC. + + + + + + + OPTIONAL current value of the METRIC. + + + + + + + + + An enumerated string METRIC represents a textual status or annotation information with a constrained set of possible values. + +Example: a ventilation mode. + + + + + + + List of values that the enumerated string METRIC accepts as a valid value. + + + + + + Accepted string value. + + + + + OPTIONAL pm:CodedValue to semantically describe the allowed value. + + + + + OPTIONAL identification to apply instance identifiers to each allowed value. + + + + + OPTIONAL field to attach a dimensional measurement to each allowed value. + + + + + + + + + + + + State of an enumerated string METRIC. + + + + + + + + Declares a sample array that represents a real-time continuous waveform. An example would be an electrocardiogram (ECG) real-time wave. + + + + + + + The maximum range of the values of the real-time sample array. + + + + + + The resolution of the means to determine the METRIC's value. The Resolution is the minimum determinable difference between two determined values. + + + + + The sample period of the real-time sample array, i.e., how often waveform samples are generated. SamplePeriod is always given as a period between samples, e.g., 5 milliseconds. + + + + + + + + State of a stream METRIC descriptor. It contains a list of sample values. This sample array is used to transport waveform stream information. + + + + + + + OPTIONAL current value of the METRIC. + + + + + The physiological reasonable range of determined values. + +NOTE—This is not an alarming range. + + + + + + + + + Declares a sample array that represents linear value distributions in the form of arrays containing scaled sample values. In contrast to real-time sample arrays, distribution sample arrays provide observed spatial values, not time points. + +NOTE—An example for a distribution sample array metric might be a fourier-transformed electroencephalogram to derive frequency distribution. + + + + + + + The maximum range of the values of the distribution sample array. + + + + + The CODED VALUE that is used for domain values (x axis). + + + + + Minimum and maximum domain values. A linear scale is assumed unless a step width is given. + + + + + + The resolution of the means to determine the METRIC's value. Resolution is the minimum determinable difference between two determined values. + + + + + + + + State of a distribution sample array METRIC descriptor. It contains a list of sample values. This sample array is used to transport spatial range information. + + + + + + + OPTIONAL current value of the METRIC. + + + + + The physiological reasonable range of determined values. + +NOTE—This is not an alarming range. + + + + + + + + + + + A list of operation handle references. + + + + + + ScoDescriptor describes the capabilities of the SCO. + + + + + + + A list of operations that are provided by the SCO. The list is ordered by the position of the operation in the list where the ELEMENT with a lower list index has a higher clinical relevance than any entry with a higher list index. The SERVICE PROVIDER defines the clinical relevance and MAY reorder the list at any time. + + + + + + + + + Corresponding state of pm:ScoDescriptor. + + + + + + + OperationGroup defines groups of operations in order to allow clinical grouping and prioritization of operations. + + + + + + + Type sematically describes the operation group. + + + + + + OperatingMode defines the operating mode of the whole operation group, see also pm:OperatingMode. + + + + + Handle references to all operations enclosed by the operation group. The list is ordered such that the entry with a lower list index has a higher clinical relevance than any entry with a higher list index. The SERVICE PROVIDER defines the clinical relevance and MAY reorder the list at any time. + + + + + + + + Prioritized list of operations that are requested to be invoked by a SERVICE CONSUMER. + + + + + Prioritized list of operations that are required to be invoked by a SERVICE CONSUMER. + + + + + + + + Abstract description of an operation that is exposed on the SCO. + + + + + + A HANDLE reference this operation is targeted to. In case of a single state this is the HANDLE of the descriptor. In case that multiple states may belong to one descriptor (pm:AbstractMultiState), OperationTarget is the HANDLE of one of the state instances (if the state is modified by the operation). + + + + + MaxTimeToFinish defines the maximum time an operation takes to get from the initial receiving of the command to a successful end. + + + + + InvocationEffectiveTimeout defines a time period in which the result of an invocation is effective after it has been successfully finished. When the time is up and the operation has not been retriggered, then the SERVICE PROVIDER MAY revert the operation target to another state. + +NOTE—Example: if an arbitrary client remotely controls the cutter of a high frequency cutting device, due to safety reasons the cutter trigger might have a timeout until it stops automatically. To enable continuous activation, the client has to send repeated triggers within the given InvocationEffectiveTimeout duration. + + + + + Retriggerable is only applicable if ./@InvocationEffectiveTimeout is set. If set to "true", then Retriggerable indicates that a call to the activate operation resets the current ./@InvocationEffectiveTimeout, otherwise it will be left as it is until ./@InvocationEffectiveTimeout times out. + +The implied value SHALL be "true". + + + + + AccessLevel defines a user group to whom access to the operation is granted. The implied value SHALL be "Usr". + +__R5054: Access to the invocation of the operation SHALL be restricted to the defined user group by a SERVICE CONSUMER.__ + + + + + + Usr = User. Any person interacting with (i.e., operating or handling) the POC MEDICAL DEVICE. + + + + + CSUsr = Clinical Super User. Individuals or entity accountable to the RESPONSIBLE ORGANIZATION that configure clinical relevant settings of a POC MEDICAL DEVICE. + + + + + RO = Responsible Organization. Access is restricted to a RESPONSIBLE ORGANIZATION. + + + + + SP = Service Personnel. Access is restricted to SERVICE PERSONNEL. + + + + + Oth = Other. Access is restricted by other means (e.g., an extension). + + + + + + + + + + + Abstract description of an operation that is exposed on the SCO and is intended to be used to set a complete state. + + + + + + + ModifiableData describes a list of ATTRIBUTEs and ELEMENTs the underlying operation modifies on invocation by means of XPath expressions. + +__R5010: If the ModifiableData list is empty, then all ELEMENTs/ATTRIBUTEs SHALL be modifiable except for pm:AbstractMultiState/@Handle, pm:AbstractState/@DescriptorHandle, pm:AbstractState/@StateVersion, and pm:AbstractState/@DescriptorVersion.__ + +__R5011: The root ELEMENT of the XPath expressions SHALL be the state of the CONTAINMENT TREE ENTRY referenced by pm:AbstractOperationDescriptor/@OperationTarget.__ + + + + + + + + + Mode of an operation state. + + + + + Dis = Disabled. Object is disabled. + + + + + En = Enabled. Object is enabled + + + + + NA = Not Available. Object is not available for interaction. This means that it is defined but currently not in a mode so that it can be interacted with. + + + + + + + State of an operation that is exposed on the SCO. + + + + + + Operating mode that defines if the operation is accessible. + + + + + + + + + Describes a numeric set operation for a specific object state in the MDIB that is exposed on the SCO. + + + + + + + + State of a numeric set operation that is exposed on the SCO. + + + + + + + The currently allowed ranges that can be requested. + +NOTE—The given ranges need to be a (strict or non-strict) subset of the technical range of the referenced descriptor. + + + + + + + + + Describes a string set operation for a specific object state in the MDIB that is exposed on the SCO. + + + + + + An optional parameter that gives the maximum length of the input string that is supported by the operation. + + + + + + + + State of a string set operation that is exposed on the SCO. + + + + + + + An OPTIONAL list of currently allowed string values that can be requested. If the list is empty, then there is not limitation. + + + + + + A single allowed value that can be requested. + + + + + + + + + + + + Describes an activate operation that is exposed on the SCO. Activate operations are any parameterized operations that trigger an arbitrary action. The action that is triggered SHALL be defined by the pm:AbstractDescriptor/pm:Type ELEMENT. + + + + + + + Argument description for an activate operation. + + + + + + CODED VALUE that describes this argument. + + + + + Data type of the argument, defined by a qualified name. + + + + + + + + + + + + State of an activate operation that is exposed on the SCO. + + + + + + + + Describes a context state set operation for a specific context state in the MDIB that is exposed on SCO. + + + + + + + + State of a context state set operation that is exposed on the SCO. + + + + + + + + Describes a METRIC state set operation for a specific METRIC state in the MDIB that is exposed on the SCO. + + + + + + + + State of a METRIC state set operation that is exposed on the SCO. + + + + + + + + Describes a component state set operation for a specific component state in the MDIB that is exposed on the SCO. + + + + + + + + State of a component state set operation that is exposed on the SCO. + + + + + + + + Describes an alert state set operation for a specific alert state in the MDIB that is exposed on the SCO. + + + + + + + + State of an alert state set operation that is exposed on the SCO. + + + + + + + + + TimeZone describes the time zone and DST setting of a clock in POSIX format (ISO/IEC/IEEE 9945). + +Example: CST6CDT,M3.2.0/2:00:00,M11.1.0/2:00:00, which would effect a change to daylight saving time at 2:00 AM on the second Sunday in March and change back at 2:00 AM on the first Sunday in November, and keep 6 hours time offset from GMT every year. + + + + + + ClockDescriptor describes the capabilities of an MDS regarding date/time handling and synchronization. The presense of a ClockDescriptor does not imply any specific hardware or software support. + + + + + + + OPTIONAL list of protocols that can be used to set the POC MEDICAL DEVICE's clock. An empty list implies that the clock cannot be set and is therefore uncalibrated and unsynchronized (e.g., equal to MDC:MDC_TIME_SYNC_NONE). +Example: {MDC:MDC_TIME_SYNC_EBWW, MDC:MDC_TIME_SYNC_SNTPV4, MDC:MDC_TIME_SYNC_NTPV3} if the clock supports synchronization using manually setting on the POC MEDICAL DEVICE, SNTP v4.0 (RFC 2030) and NTP v3.0 (RFC 1305). + + + + + + Time between actual ticks of the clock in microseconds. If none is given, the resolution is unknown. + + + + + + + + State of a clock of an MDS. + + + + + + + Protocol that is actively being used for time sync. + +Examples: MDC:MDC_TIME_SYNC_NTPV3 if the clock is synchronized using NTP v3.0 (RFC 1305) or MDC:MDC_TIME_SYNC_NONE if the clock is not synchronized. + + + + + Identifies the clock's external reference source(s), e.g., NTP server addresses. + + + + + + Current date/time setting. As the current date/time changes at a high frequency, a change of this value SHALL NOT cause an update of the state version unless it has been synchronized either remotely or manually. + +NOTE—DateAndTime could be filled when the clock is explicitly requested. + + + + + Indicates if the time is synchronized to an external source or set by an operator. + + + + + Accuracy is a decimal number indicating the maximum error in seconds of the absolute time relative to a primary reference clock source. + +In systems where time synchronization is not used and the clock is set manually by "eyeball and wristwatch" (EBWW), this SHALL be initialized to three minutes when the clock time is set. If NTP is used, this is equivalent to Root Dispersion + 1⁄2 Root Delay. + + + + + Time point when the absolute time was set or synchronized. + +NOTE 1—If a time synchronization protocol is used that "changes" the time and date at a high frequency, it is proposed to update this value at a lower periodicity (e.g., once every 10 minutes or once an hour), so as not to consume communications bandwidth unnecessarily. +NOTE 2—Synchronization might be achieved by slewing the time. This means that the virtual frequency of the software clock is adjusted to make the clock go faster or slower until it is corrected. + + + + + Identifies the time zone and DST of the clock. + + + + + Identifies that the clock information is actively being used in care delivery algorithms/protocols. The implied value SHALL be "false". + + + + + + + + + For battery-powered devices, battery information can be contained in this object. + + + + + + + Current battery capacity after a full charge. + + + + + Rated capacity the manufacturer claims for the battery. + + + + + Specified battery voltage. + + + + + + + + + State of a battery of an MDS. + +The current power source is designated by ./@ActivationState: + +- If ./@ActivationState equals "On", the device is running on battery +- If ./@ActivationState equals "Off", the device is in mains operation and currently not able to be run on battery +- If ./@ActivationState equals "StndBy", the device is in mains operation and can be switched to run on battery +- If ./@ActivationState equals "Fail", the battery has a malfunction. Detailed error information SHOULD be communicated by using an ALERT SYSTEM. + +Enumerations "Shtdn" and "NotRdy" are undefined for BatteryState. + + + + + + + Remaining capacity at current load. + + + + + Voltage between the terminals of a cell or battery when being discharged. See also IEC 60050-482 International Electrotechnical Vocabulary, 482-03-28. + + + + + Electric current delivered by a battery during its discharge; negative if battery is charge. See also IEC 60050-482 International Electrotechnical Vocabulary, 482-03-24. + + + + + Current battery temperature. + + + + + Current remaining time until battery is discharged. + + + + + + Current charge status of the battery. + + + + + + Ful = Full. All available active material is in a state such that the charging under the selected conditions produces no significant increase of capacity. See also IEC 60050-482 International Electrotechnical Vocabulary, 482-05-42. + + + + + ChB = Charging Battery. Battery is currently supplied with electric energy from an external circuit. See also IEC 60050-482 International Electrotechnical Vocabulary, 482-05-27. + + + + + DisChB = Discharging Battery. Battery delivers, to an external electric circuit and under specified conditions, electric energy produced in the cells. See also IEC 60050-482 International Electrotechnical Vocabulary, 482-03-23 + + + + + DEB = Discharged Empty Battery. Discharged secondary battery. See also IEC 60050-482 International Electrotechnical Vocabulary, 482-05-31. + + + + + + + + Number of charge/discharge cycles. + + + + + + + + + + The context of an MDS that lists the possible relationship of a POC MEDICAL DEVICE into its usage environment by means of context descriptors. Context descriptors do not contain any stateful information. They only assert that the underlying MDS can provide corresponding context state information. + + + + + + + The patient context indicates that the POC MEDICAL DEVICE is able to process information about the patient that it is associated with. + +A SERVICE PROVIDER SHALL NOT insert or delete the context descriptor ELEMENT during runtime, except when the whole MDS appears/disappears. + + + + + The location context indicates that the POC MEDICAL DEVICE can provide information about the location(s) that it is associated with. + +A SERVICE PROVIDER SHALL NOT insert or delete the context descriptor ELEMENT during runtime, except when the whole MDS appears/disappears. + + + + + The ensemble context indicates that the POC MEDICAL DEVICE can provide information about the ensemble(s) that it is associated with. An ensemble represents an arbitrary grouping of POC MEDICAL DEVICE. The semantics depend on the ensemble itself. + +A SERVICE PROVIDER SHALL NOT insert or delete the context descriptor ELEMENT during runtime, except when the whole MDS appears/disappears. + + + + + The operator context indicates that the POC MEDICAL DEVICE can provide information about the operator(s) that it is associated with. + +A SERVICE PROVIDER SHALL NOT insert or delete the context descriptor ELEMENT during runtime, except when the whole MDS appears/disappears. + + + + + The workflow context indicates that the POC MEDICAL DEVICE can provide information about the workflow step(s) that it is associated with. + +A SERVICE PROVIDER SHALL NOT insert or delete the context descriptor ELEMENT during runtime, except when the whole MDS appears/disappears. + + + + + The means context indicates that the POC MEDICAL DEVICE can provide information about utilized means. + +A SERVICE PROVIDER SHALL NOT insert or delete the context descriptor ELEMENT during runtime, except when the whole MDS appears/disappears. + + + + + + + + + Corresponding state of pm:SystemContextDescriptor. This state comes with no additional attributes. + + + + + + + + + Abstract base class for objects that specify that the MDS is able to provide context information that MAY be of relevance for the state data that is present at the communication interface at a certain point of time or time period. + + + + + + + + Defines an association between an arbitrary context and an MDS. + + + + + No = Not Associated. There is currently no context information associated, such that there cannot be made any assumptions on the encompassing context. + + + + + Pre = Pre-Associated. Context information is in a pre-association state. + + + + + Assoc = Associated. Context information is associated. + + + + + Dis = Disassociated. Context information is no longer associated. + + + + + + + Base type of a context state. Every context state can be identified as valid by a validator instance. Moreover, a context state's lifecycle is determined by a start and end. AbstractContextState bundles these information. + + + + + + + OPTIONAL list of actors (e.g., persons, devices or any identifiable systems) which have confirmed that a binding of a context state to an MDS is correct. + + + + + OPTIONAL ordered list of identifiers for the context. The list is ordered by the position of the identifiers in the list where the ELEMENT with the lower list index has a higher relevance than any entry with a higher list index. The SERVICE PROVIDER defines the relevance and MAY reorder the list at any time. + +NOTE 1—Identification can be used to span a communication context between SERVICE PROVIDERs and SERVICE CONSUMERs. +NOTE 2—Identification can be empty, e.g., if pm:AbstractContextState/@ContextAssociation is "No". + + + + + + Association of a context. The implied value SHALL be "No". + +__R5027: Before a SERVICE PROVIDER decides to remove a specific context state from its MDIB, it SHALL change the context association of that context state to "No".__ + +NOTE—BICEPS supports no special state removal flag. Therefore, a SERVICE CONSUMER has to rely on the context association in order to decide if a context state can be kept in memory or removed from memory. + + + + + BindingMdibVersion points to the version of an MDIB when a binding of the context state to an MDS starts. + + + + + UnbindingMdibVersion points to the version of an MDIB when a binding of a context state to an MDS ends (i.e., the version where the context association was disassociated the first time). + + + + + Point in time when a binding of a context state to an MDS starts. + + + + + Point in time when a binding of a context state to an MDS ends. + + + + + + + + Definition of basic demographic information. + + + + + + Given name of a person. + + + + + Middle name of a person. + + + + + Family name of a person. + + + + + Birth name of a person. + + + + + Title of a person. + + + + + + + A reference to an identifiable person with a name. + + + + + + The list of identifiers for the person. + + + + + The name of the person. + + + + + + + Details about a location. This information is derived from the HL7 PV1-3 PL. + + + + + + + Name of a point of care unit, e.g., nursing unit, department, or clinic. + + + + + Name of the room of a location. + + + + + Name of the bed of a location. + + + + + Name of the facility of a location. + + + + + Name of the building of a location. + + + + + Name of the floor of a building. + + + + + + + Context descriptor to specify that the MDS possesses a patient-device association. + + + + + + + + Sex of a human. + +"Sex" refers to the biological and physiological characteristics that define men and women, while "Gender" refers to the socially constructed roles, behaviors, activities, and attributes that a given society considers appropriate for men and women. See http://www.who.int/gender/whatisgender/en/index.html. + +NOTE—ISO/IEC 5218:2004 defines four CODEs that represent human sexes. + + + + + Unspec = Unspecified. Sex is not designated. + + + + + M = Male. Indicates a male patient. + + + + + F = Female. Indicates a female patient. + + + + + Unkn = Unknown. Indicates that the sex is unknown for different reasons. + + + + + + + Type of a patient. + + + + + Unspec = Unspecified. Unspecified type. + + + + + Ad = Adult. Indicates an adult patient. + + + + + Ado = Adolescent. Indicates an adolescent patient with approximate age range of 12 years to 21 years. + + + + + Ped = Pediatric. Indicates a pediatric patient with approximate age range of 2 years to 12 years. + + + + + Inf = Infant. Indicates an infant patient with approximate age range of 1 month to 2 years. + + + + + Neo = Neonatal. Indicates a neonatal patient with approximate age range of birth to 1 month. + + + + + Oth = Other. The patient type is designated by some other means. + + + + + + + The patient demographics data as defined in ISO/IEEE 11073-10201:2004 (6.10.1 Patient Demographics object). + +__R5012: If the POC MEDICAL DEVICE itself has patient-related observations (e.g., weight, height, etc.) as in- or output, these SHOULD be modelled as METRICs.__ + +NOTE—In contrast to PatientDemographicsCoreData, METRICs provide a sophisticated observation description, e.g., regarding quality and time-related attributes. + +__R5013: The pm:PatientDemographicsCoreData type is intended to be used for information purposes only. Whenever a value is available, it is considered as valid. Invalid values SHALL not be transmitted.__ + + + + + + + Sex of the patient. + + + + + Category of the patient. It refers to the ISO/IEEE 11073-10201:2004 PatientType. + + + + + Date of birth of the patient. + +If the timepoint of birth matters, the value SHALL be populated with a time zone. + + + + + + + + Height of the patient. + + + + + Weight of the patient. + + + + + Race of the patient. + + + + + + + + + NeonatalPatientDemographicsCoreData constitutes patient demographics for neonates. + + + + + + + Gestational age. + + + + + Patient length at birth time. + + + + + Patient weight at birth time. + + + + + Head circumference at birth time. + + + + + Information about the mother of the neonate. + + + + + + + + + Observed information about a patient, e.g., demographics. + +NOTE—PatientContextState contains information that is typical for a header in an anamnesis questionnaire. + + + + + + + + + + + + + Context descriptor to specify that the MDS is able to provide information regarding the current spatial position. + + + + + + + + A context state that identifies a location in a hospital. + + + + + + + LocationDetail provides human-readable detailed location information. LocationDetail SHOULD NOT be used to form location-based logical systems of devices. + +NOTE—Instead, pm:AbstractContextState/pm:Identification can be used to build logical groupings. + + + + + + + + + + Context descriptor to specify that the MDS is able to provide workflow information. + + + + + + + + This type describes a minimal clinical observation. + + + + + + Type of clinical information, e.g., allergy, intolerance, clinical condition, diagnosis, problem, etc. + + + + + Code that specifies the kind of the type of observation, e.g., a specific allergy or a specific diagnosis. + + + + + Potential clinical harm if this clinical information is not considered while treating the patient. The implied value SHALL be "Lo". + + + + + + Lo = Low. Non-compliance does not result in a severe, life-threatening, or fatal situation. + + + + + Hi = High. Non-compliance might result in a severe, life-threatening, or fatal situation. + + + + + + + + List of possible (localized) free text descriptions of the clinical information. + +If a pm:CodedValue for this clinical information is available, it is encouraged to be set as pm:ClinicalInfo/pm:Code. + + + + + Related measurements for this clinical observation if applicable. + + + + + + The related measurement's value. + + + + + Representation of the normal or abnormal reference range for the measurement. + + + + + + Range that SHALL be populated at least with ./@Lower or ./@Upper. + + + + + Indicates the meaning of the reference range. + + + + + + + + + Validity of the related measurement. See also pm:MeasurementValidity. + + + + + + + + + ImagingProcedure provides identifiers used by the DICOM and HL7 standard to identify the requested imaging procedures resulting from an order in a the hospital. Often these identifiers are created/assigned by the main hospital information system or departmental information systems and are taken over into any medical images by DICOM equipment in the context of this procedure. +The listed ELEMENTs have been taken over from the IHE Radiology Technical Framework's RAD-4 transaction ("Procedure Scheduled") and re-uses the identifiers listed for the HL7 Version 2.5.1 IPC segment group of the OBR segment. Therefore, it is recommended to comply to the underlying HL7 and DICOM data types in order to have seamless integration with other clinical IT such as DICOM modalities or image archives (PACS). + +In order to comply to the hierarchy behind the given identifiers, the following rules (taken from IHE) SHALL apply: if a Requested Procedure is comprised of multiple Scheduled Procedure Steps and/or if a Scheduled Procedure Step is comprised of multiple Protocol Codes, each applicable Scheduled Procedure Step / Protocol Code combination is included as a separate ProcedureDetails structure, i.e., the complex type "ProcedureDetails" occurs the same amount of times as there are different Scheduled Procedure Step IDs plus the amount of different Scheduled Procedure Step / Protocol Code combinations. + + + + + + The Accession Identifier (in DICOM "Accession ID") is an identifier of an "Imaging Service Request", and is (in this ProcedureDetails context) at the top of the hierarchy. A limit of sixteen (16) characters is required to allow compatibility with DICOM. + + + + + An pm:ImagingProcedure/pm:AccessionIdentifier can result in various Requested Procedures, each identified uniquely (within the context of the pm:ImagingProcedure/pm:AccessionIdentifier) through a RequestedProcedureID. A limit of sixteen (16) characters is required to allow compatibility with DICOM. + + + + + The Study Instance UID is a world-wide unique identifier used by DICOM modalities to group together images in a so-called Study. This grouping is REQUIRED. Under the Study, the modality creates one or more so-called Series which again contain the images. The Series identification ("Series Instance UID") is part of the Procedure Details which refer to a planning process, since a modality is responsible to decide how many Series are created and how their identifiers should look like. +A limit of sixty-four (64) characters is required to allow compatibility with DICOM, with only numbers and dot characters permitted (e.g. 1.2.134124.4.12.34). + + + + + Under a Study (i.e. a Study Instance UID), a Procedure reflected by these ProcedureDetails can be planned in a finer granularity by scheduling different steps that should be performed (usually at a DICOM modality), the so-called "Scheduled Procedure Step"s. Each of these steps is identified by a Scheduled Procedure Step ID. A limit of sixteen (16) characters is required to allow compatibility with DICOM. + + + + + The field modality describes the type of equipment (usually DICOM equipment) used. DICOM offers a list of short identifiers for different device categories, e.g. CT for "Computer Tomography" or US for "Ultrasound". It is advised to follow the list of terms defined in the DICOM standard part 3. A limit of sixteen (16) characters for the first component is required to allow compatibility with DICOM. + + + + + Below each Scheduled Procedure Step the work can be defined in more detail by defining one or more Protocol Codes under it. A limit of sixteen (16) characters for the first component and sixty-four (64) characters for the second component is required to allow compatibility with DICOM. + + + + + + + A reference to an identifiable location with human readable location details. + + + + + + The list of identifiers for the location. + + + + + Human readable location details which are intended for information purposes only. + + + + + + + Details of an order that will be performed or that has been performed. + + + + + + Data for start of requested/performed procedure. + + + + + Data for end of requested/performed procedure. + + + + + Names with roles of attending staff. + + + + + Identifier and textual descriptions of requested/performed procedures + + + + + ImagingProcedure provide identifiers used by the DICOM and HL7 standard to identify the requested imaging procedures resulting from an order in a the hospital. + + + + + + + A reference to an identifiable person with a name that participates in a role. + + + + + + + Roles the referenced person acts in the relationship. + + + + + + + + + A context state to identify a step in a clinical workflow. + + + + + + + A workflow step for a clinical treatment or diagnostic procedure or monitoring procedure. + + + + + + + Subject of the order. + + + + + Location the order assigned to. + + + + + Reference key of inpatient stay or outpatient visit of the patient administration system. + + + + + Identifier and textual descriptions of patient immanent risks, e.g., infectious diseases. + + + + + Clinical information that is relevant for the order. + + + + + Initial order details at the time of order release. + + + + + + + + Physician as the initiator of the clinical process, e.g. the general practitioner. + + + + + Source that initiated the order. + + + + + Reference key of the order generating system. + + + + + + + + + + Recent state of order details after order has been performed. + + + + + + + + Reference key of the order filler system/ departmental system completing or changing order details. + + + + + Clinical information resulting from the service. + + + + + + + + + + + + + + + + + + Context descriptor to specify that the MDS is able to provide operator information. + + + + + + + + A context state that identifies an operator of an MDS or a part of it. + + + + + + + Human-readable details (i.e., name) about the operator. + + + + + + + + + + Context descriptor to specify that the MDS is able to provide information about utilized means. + + + + + + + + A context state to identify a means that is utilized by an MDS or a part of it. + + + + + + + + + Context descriptor to specify that the MDS is able to provide ensemble information. + + + + + + + + A context state that identifies an ensemble of POC MEDICAL DEVICEs. How the ensemble is grouped and what meaning is conveyed by the ensemble, is determined by other means. + + + + + + + + + ContainmentTreeInfo summarizes ATTRIBUTEs related to a CONTAINMENT TREE entry. + + + + Handle reference to the descriptor that the CONTAINMENT TREE entry represents. + + + + + Handle reference to the parent descriptor of the descriptor that this CONTAINMENT TREE entry represents. + + + + + Qualified name of the descriptor that the CONTAINMENT TREE entry represents. + + + + + Number of child ELEMENTs that the CONTAINMENT TREE entry possesses. + + + + + + CONTAINMENT TREE part of an ELEMENT of an MDS CONTAINMENT TREE. + + + + + + An entry of a CONTAINMENT TREE ENTRY. + + + + + + + + An entry in a CONTAINMENT TREE. + + + + + + If given, pm:AbstractDescriptor/pm:Type of the descriptor that is conveyed with the CONTAINMENT TREE entry. + + + + + + diff --git a/sources/history-service/ExtensionPoint.xsd b/sources/history-service/ExtensionPoint.xsd new file mode 100644 index 00000000..5ef00555 --- /dev/null +++ b/sources/history-service/ExtensionPoint.xsd @@ -0,0 +1,21 @@ + + + + + + + + + + + In cases where an extension modifies the meaning of the element that contains it, a MustUnderstand attribute is senseful. This means that the data cannot safely be processed unless the application knows the meaning of the extension. A MustUnderstand marked extension could be look like this: + +tns:Extension xmlns:tns="http://standards.ieee.org/downloads/11073/11073-10207-2017/extension" xmlns:ext="http://concrete-extension-namespace" + ext:AdditionalInfo tns:MustUnderstand="true" + ... + + +Extensions are not required to provide a MustUnderstand attribute. If no MustUnderstand attribute is present, false is assumed. The MustUnderstand attribute is conceptually borrowed from SOAP header's "mustUnderstand" attribute. + + + diff --git a/sources/history-service/HistoryModel.xsd b/sources/history-service/HistoryModel.xsd new file mode 100644 index 00000000..c3bcdb7d --- /dev/null +++ b/sources/history-service/HistoryModel.xsd @@ -0,0 +1,406 @@ + + + + + + + + A report element that allows to communicate MDIBs along with sequences of changes. + + + + + + Type definition of a report to communicate MDIBs along with sequences of changes. + + + + + + Zero or more response status elements indicating issues of the preceding *History + Service* request. + + + + + + Zero or more ChangeSequence elements to describe changes of different MDIB + sequences and/or instance numbers. + + + + + + + Designates a report to be the last one in a sequence of reports of a *History + Service* request; true if it is the last report, false otherwise. + + + + + + + An element that contains an MDIB snapshot and subsequent MDIB changes. + + + + + + Type definition of a change sequence. + + + + + Contains *Historic Localized Text* data. + + + + + The initial *MDIB Configuration* at the beginning of a change sequence. + + + + + + Subsequent reports to be applied on the initial *MDIB Configuration* to recreate + the change history. + + + + + + + The MDIB sequence identifier that is valid for this change sequence. + + + + + + MDIB instance number that is valid for this change sequence. + + + + + + + + Localized texts to be used for subsequent MDIB data. + + + + + + The MDIB sequence identifier the localized texts are scoped in. If absent, the + localized texts are valid for any MDIB sequence identifier. + + + + + + The MDIB instance identifier the localized texts are scoped in. If absent, the + localized texts are valid for any MDIB instance identifier. + + + + + + + Definition of an *MDIB Configuration* at a specific time. + + + + + A GetMdibResponse message that serves as the initial *MDIB Configuration* for an + MDIB sequence on which historic reports can be applied. + + + + + + + Time at which the *MDIB Configuration* was first effective for the *SDC Service + Provider*. + + + + + + + Definition of a report at a specific time. + + + + + + + + + + + + + Time at which the report was persisted. + + + + + Time at which the report was persisted. + + + + + + + Element to be used as request data to the *History Service*. + + + + + Type definition to be used as request data to the *History Service*. + + + + + If true, the query requests the transmission of an initial MDIB. If false, the + MDIB is omitted from the data stream. + + + + + + A language filter to opt-in for requesting localized texts. + + - If the LanguageFilter element does not exist, no pm:LocalizedText elements are to be selected + - If the LanguageFilter element exists and the list is empty, all pm:LocalizedText elements are + to be selected + - If the LanguageFilter element exists and the list is not empty, all pm:LocalizedText elements + are to be selected where pm:LocalizedText@Lang is element of LanguageFilter + + + + + + + + + The time or MDIB version range to select. + + + + + + + A range based on either time frames or MDIB versions. + + + + + Time range that is requested from a history service. Timestamps refer to the + clock of the requested SDC SERVICE PROVIDER and do not necessarily correspond to a specific + determination time in the MDIB. Results from time range-based querying are typically imprecise + and depend on a synchronized clock between SDC SERVICE PROVIDER and SDC SERVICE CONSUMER. Hence, + version range-based querying is always preferred over time range-based querying. + + + + + + Version range that is requested from a history service. + + + + + + + A start and end time to designate a time span. + + + + Start time from which the history is to be picked. + + + + + End time up to which the history is to be picked. + + + + + + A start and end version to designate a range of versions. + + + + The MDIB sequence from which to pick historical data. + + + + + An MDIB instance number from which to pick historical data. + + + + + MDIB version from which the history is to be picked including StartVersion. + + + + + + MDIB version up to which the history is to be picked including EndVersion. + + + + + + + + + The *History Service* does not respond with initial MDIB snapshots. + + + + + + + + + + + The *History Service* does not respond with localized texts, which requires all + localized texts to be static. + + + + + + + + + + + The *History Service* could not fully serve the requested version range. The + version range indicates the actual range of versions being provided in the *History Service* + response. + + + + + + The *History Service* could not fully serve the requested time range. The time + range indicates the actual range of time being provided in the *History Service* response. + + + + + + The *History Service* does not send reports of the given types. + + + + + + + Report type that is not provided. + + + + + + + + + The *History Service* does not support responding to requests based on time + ranges. + + + + + + + + + + + The *History Service* does not support responding to requests based on version + ranges. + + + + + + Indicates that there have been issues with time synchronization, which may result + in an imperfect response. + + + + + + Indicates another, undocumented status. + + + + + + An optional status message, intended for debugging purposes only. + + + + + Status code defined by another entity. + + + + + Language of the status message. + + + + + + + + + + + Enumeration of MDIB report types. + + + + + Identifies description modification reports. + + + + + Identifies alert reports. + + + + + Identifies component reports. + + + + + Identifies context reports. + + + + + Identifies metric reports. + + + + + Identifies operation reports. + + + + + Identifies waveform frame reports. + + + + + diff --git a/sources/history-service/HistoryService.wsdl b/sources/history-service/HistoryService.wsdl new file mode 100644 index 00000000..5b73aef1 --- /dev/null +++ b/sources/history-service/HistoryService.wsdl @@ -0,0 +1,28 @@ + + + + + + + + + + The action URI urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1.2 uniquely identifies the history service notification output. It is a sub-node to the history service identifier urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.3.1. + + + + + + + + + + + + + + + + + +