diff --git a/.ci/asciidoc-converter/build_document.bat b/.ci/asciidoc-converter/build_document.bat index 1a35a615..2cbee5cd 100644 --- a/.ci/asciidoc-converter/build_document.bat +++ b/.ci/asciidoc-converter/build_document.bat @@ -1 +1,5 @@ -gradlew.bat run --args="--input-file ../../asciidoc/sdpi-supplement.adoc --output-folder ../../sdpi-supplement --backend html" +mkdir ..\..\sdpi-documents +mkdir ..\..\sdpi-documents\sdpi-standard +mkdir ..\..\sdpi-documents\sdpi-supplement +gradlew.bat run --args="--input-file ../../asciidoc/sdpi-standard.adoc --output-folder ../../sdpi-documents/sdpi-standard --backend html" +gradlew.bat run --args="--input-file ../../asciidoc/sdpi-supplement.adoc --output-folder ../../sdpi-documents/sdpi-supplement --backend html" diff --git a/.ci/asciidoc-converter/build_document_pdf.bat b/.ci/asciidoc-converter/build_document_pdf.bat index d245d581..c46cca96 100644 --- a/.ci/asciidoc-converter/build_document_pdf.bat +++ b/.ci/asciidoc-converter/build_document_pdf.bat @@ -1,3 +1,3 @@ -gradlew.bat run --args="--input-file ../../asciidoc/sdpi-supplement.adoc --output-folder ../../sdpi-supplement --backend pdf" +gradlew.bat run --args="--input-file ../../asciidoc/sdpi-standard.adoc --output-folder ../../sdpi-standard --backend pdf" diff --git a/.ci/asciidoc-converter/publish_assets.bat b/.ci/asciidoc-converter/publish_assets.bat index 78adf896..88b51885 100644 --- a/.ci/asciidoc-converter/publish_assets.bat +++ b/.ci/asciidoc-converter/publish_assets.bat @@ -1,5 +1,11 @@ -xcopy ..\..\asciidoc\css\*.* ..\..\sdpi-supplement\css /I /R /Y -xcopy ..\..\asciidoc\fonts\*.* ..\..\sdpi-supplement\fonts /I /R /Y -xcopy ..\..\asciidoc\images\*.* ..\..\sdpi-supplement\images /I /R /Y -xcopy ..\..\asciidoc\js\*.* ..\..\sdpi-supplement\js /I /R /Y -xcopy images\*.* ..\..\sdpi-supplement\images /I /R /Y \ No newline at end of file +xcopy ..\..\asciidoc\css\*.* ..\..\sdpi-documents\sdpi-standard\css /I /R /Y +xcopy ..\..\asciidoc\fonts\*.* ..\..\sdpi-documents\sdpi-standard\fonts /I /R /Y +xcopy ..\..\asciidoc\images\*.* ..\..\sdpi-documents\sdpi-standard\images /I /R /Y +xcopy ..\..\asciidoc\js\*.* ..\..\sdpi-documents\sdpi-standard\js /I /R /Y +xcopy images\*.* ..\..\sdpi-documents\sdpi-standard\images /I /R /Y + +xcopy ..\..\asciidoc\css\*.* ..\..\sdpi-documents\sdpi-supplement\css /I /R /Y +xcopy ..\..\asciidoc\fonts\*.* ..\..\sdpi-documents\sdpi-supplement\fonts /I /R /Y +xcopy ..\..\asciidoc\images\*.* ..\..\sdpi-documents\sdpi-supplement\images /I /R /Y +xcopy ..\..\asciidoc\js\*.* ..\..\sdpi-documents\sdpi-supplement\js /I /R /Y +xcopy images\*.* ..\..\sdpi-documents\sdpi-supplement\images /I /R /Y diff --git a/.github/prepare_artifacts.sh b/.github/prepare_artifacts.sh index 2934818b..353dbaee 100755 --- a/.github/prepare_artifacts.sh +++ b/.github/prepare_artifacts.sh @@ -5,15 +5,31 @@ gem install asciidoctor-diagram gem install asciidoctor-diagram-plantuml asciidoctor -V cd asciidoc || exit -asciidoctor -r asciidoctor-diagram -D ../ sdpi-supplement.adoc + +mkdir sdpi-documents + +asciidoctor -r asciidoctor-diagram -D ../sdpi-documents sdpi-standard.adoc +asciidoctor -r asciidoctor-diagram -D ../sdpi-documents sdpi-supplement.adoc cd .. -mkdir sdpi-supplement -cp -R asciidoc/images sdpi-supplement/images -cp -R asciidoc/js sdpi-supplement/js -cp -R asciidoc/css sdpi-supplement/css -cp -R asciidoc/fonts sdpi-supplement/fonts -rm -rf sdpi-supplement/.asciidoctor -rm -rf sdpi-supplement/readme.md + +mkdir sdpi-documents/sdpi-standard +cp -R asciidoc/images sdpi-documents/sdpi-standard/images +cp -R asciidoc/js sdpi-documents/sdpi-standard/js +cp -R asciidoc/css sdpi-documents/sdpi-standard/css +cp -R asciidoc/fonts sdpi-documents/sdpi-standard/fonts +rm -rf sdpi-documents/sdpi-standard/.asciidoctor +rm -rf sdpi-documents/sdpi-standard/readme.md + +mkdir sdpi-documents/sdpi-supplement +cp -R asciidoc/images sdpi-documents/sdpi-supplement/images +cp -R asciidoc/js sdpi-documents/sdpi-supplement/js +cp -R asciidoc/css sdpi-documents/sdpi-supplement/css +cp -R asciidoc/fonts sdpi-documents/sdpi-supplement/fonts +rm -rf sdpi-documents/sdpi-supplement/.asciidoctor +rm -rf sdpi-documents/sdpi-supplement/readme.md + +rm -rf sdpi-documents/sdpi-standard.html +rm -rf sdpi-documents/sdpi-supplement.html sudo apt-get install zip gzip tar -zip -r "sdpi-supplement-$1.zip" sdpi-supplement \ No newline at end of file +zip -r "sdpi-documents-$1.zip" sdpi-documents \ No newline at end of file diff --git a/.github/workflows/feature-review-build.yml b/.github/workflows/feature-review-build.yml index f49ae801..bbecfa38 100755 --- a/.github/workflows/feature-review-build.yml +++ b/.github/workflows/feature-review-build.yml @@ -4,7 +4,7 @@ on: [push, pull_request] env: CI: true - + jobs: build: @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout branch uses: actions/checkout@v4 - + - name: Set up JDK 17 uses: actions/setup-java@v4 with: @@ -30,25 +30,34 @@ jobs: with: ruby-version: '3.0' # Not needed with a .ruby-version file bundler-cache: true # runs 'bundle install' and caches installed gems automatically - + - name: Setup gradle uses: gradle/actions/setup-gradle@v4 - - name: Create HTML with Gradle - run: ./gradlew run --args="--input-file ../../asciidoc/sdpi-supplement.adoc --output-folder ../../sdpi-supplement --github-token '${{ secrets.SDPI_API_ACCESS_TOKEN_SECRET }}' --backend html" + - name: Create folders + run: | + mkdir -p sdpi-documents/sdpi-standard + mkdir -p sdpi-documents/sdpi-supplement + + - name: Create SDPi Standard HTML with Gradle + run: ./gradlew run --args="--input-file ../../asciidoc/sdpi-standard.adoc --output-folder ../../sdpi-documents/sdpi-standard --github-token '${{ secrets.SDPI_API_ACCESS_TOKEN_SECRET }}' --backend html" working-directory: .ci/asciidoc-converter - - name: Generate PlantUML diagrams and static files + - name: Create SDPi Supplement HTML with Gradle + run: ./gradlew run --args="--input-file ../../asciidoc/sdpi-supplement.adoc --output-folder ../../sdpi-documents/sdpi-supplement --github-token '${{ secrets.SDPI_API_ACCESS_TOKEN_SECRET }}' --backend html" + working-directory: .ci/asciidoc-converter + + - name: Generate SDPi Standard and Supplement PlantUML diagrams and static files run: .github/prepare_artifacts.sh "x.x.x" - + - name: Extract branch name shell: bash run: echo "branch=$(echo ${GITHUB_REF#refs/heads/})" | tr '/' '-' >> $GITHUB_OUTPUT id: extract_branch - + - name: Upload artifact # if: success() && github.ref == 'refs/heads/master' uses: actions/upload-artifact@v4 with: - name: sdpi-supplement-${{ steps.extract_branch.outputs.branch }} - path: sdpi-supplement + name: sdpi-documents-${{ steps.extract_branch.outputs.branch }} + path: sdpi-documents diff --git a/.github/workflows/latest-master-build.yml b/.github/workflows/latest-master-build.yml index aed213f6..9ff66809 100755 --- a/.github/workflows/latest-master-build.yml +++ b/.github/workflows/latest-master-build.yml @@ -38,7 +38,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Create HTML with Gradle - run: ./gradlew run --args="--input-file ../../asciidoc/sdpi-supplement.adoc --output-folder ../../sdpi-supplement --github-token ${{ secrets.SDPI_API_ACCESS_TOKEN_SECRET }} --backend html" + run: ./gradlew run --args="--input-file ../../asciidoc/sdpi-standard.adoc --output-folder ../../sdpi-standard --github-token ${{ secrets.SDPI_API_ACCESS_TOKEN_SECRET }} --backend html" working-directory: .ci/asciidoc-converter - name: Generate PlantUML diagrams and copy static files @@ -48,5 +48,5 @@ jobs: # if: success() && github.ref == 'refs/heads/master' uses: actions/upload-artifact@v4 with: - name: sdpi-supplement - path: sdpi-supplement + name: sdpi-standard + path: sdpi-standard diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 9499fc73..91bff5fa 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -38,7 +38,7 @@ jobs: uses: gradle/actions/setup-gradle@v4 - name: Create HTML with Gradle - run: ./gradlew run --args="--input-file ../../asciidoc/sdpi-supplement.adoc --output-folder ../../sdpi-supplement --github-token ${{ secrets.SDPI_API_ACCESS_TOKEN_SECRET }} --backend html" + run: ./gradlew run --args="--input-file ../../asciidoc/sdpi-standard.adoc --output-folder ../../sdpi-standard --github-token ${{ secrets.SDPI_API_ACCESS_TOKEN_SECRET }} --backend html" working-directory: .ci/asciidoc-converter - name: Generate PlantUML diagrams and static files @@ -48,8 +48,8 @@ jobs: # if: success() && github.ref == 'refs/heads/master' uses: actions/upload-artifact@v4 with: - name: sdpi-supplement - path: sdpi-supplement + name: sdpi-standard + path: sdpi-standard - name: Create release page uses: ncipollo/release-action@v1 @@ -57,5 +57,5 @@ jobs: name: "Release of ${{ github.ref_name }} for TI" makeLatest: true body: "[đź“‹Please click here for a detailed changelog](https://github.com/IHE/DEV.SDPi/blob/${{ github.ref_name }}/CHANGELOG.md)" - artifacts: "sdpi-supplement-${{ github.ref_name }}.zip" + artifacts: "sdpi-standard-${{ github.ref_name }}.zip" diff --git a/.gitignore b/.gitignore index db2062ea..6a4a5ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,7 @@ puml-*.svg *.pdf *.html .asciidoctor + +sdpi-documents +sdpi-supplement +sdpi-standard \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index ae324c45..e5d2d09e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,10 @@ Each section shall contain a list of action items of the following format: `> below. +For HL7 ballot comment resolution, links are made from HL7 ballot Jira tickets to IHE DEV.SDPi Github Issues that then enable tracking of the comment resolution implementation in a specific release. + + +NOTE: This supplement also includes both normative and informative references to other specifications (see <>), some of which are finalized and published and others that are either being developed or in revision. +For example, the IEEE 11073-10702 PKP standard is in mature development stage; however, some requirements from that pre-standard may be included (non-normatively) in this SDPi specification, providing a pathway to early experience and validation. +When a referenced specification is used that is in development or revision, a note will be provided in the <> clearly indicating its status. + +It is recognized that this release is a work-in-progress that will continue to subsequent versions. +These known limitations and forward-looking content include: + +. Releases along with the planned capability additions are managed in the project's https://github.com/IHE/DEV.SDPi/milestones[DEV.SDPi milestones]; +. This supplement includes four SDPi Profiles, though the typical IHE supplement is organized for a single profile; as a result, some adjustments have been made, especially in the supplement overview section where there is a general SDPi overview and then basic overviews for each of the Profiles; challenging areas include profile "options" where there are FOUR sections vs. one; it is a work in progress and feedback is appreciated, especially to enhance clarity; +. *Open / Closed Issues tables* -- starting with SDPi 1.1 and subsequent, the approach for the IHE open / closed issues section was transitioned to utilize https://github.com/IHE/DEV.SDPi/issues[Github Issues] that are related to specific releases; each release updates the changelog file, detailing what is Added, Changed or Removed; +. *Requirements boxes* (e.g., "R1234") are included especially in TF-2, with some also part of TF-1 and TF-3; this is an initial approach that *_will be significantly expanded in future versions of the supplement_*; documentation is provided in <>, including discussion related to how it will be expanded in future versions of the supplement; +. *_<> Sections_* (see <>) are included in the specification; however, their use and content will be significantly extended in future versions; +. This supplement is currently rendered as a *"long form"* document -- one single HTML file; however, in subsequent versions the intent is to consider a multi-page / file HTML rendering + addition of a tabbed menu for navigating the sections of the supplement; +. *{supplement_note}* boxes are provided throughout the document to help guide reviewers and implementers. + +|=== + +// Forward declarations of common labels & acronyms & variables +include::document-declarations.adoc[] + +// Define oids for referenced standards +include::std-oid-definitions.adoc[] + +[#supplement_clause_sdpi_supplement_overview] +== SDPi Standard Overview + +[#supplement_clause_sdpi_supplement_organization] +=== SDPi Organization + +This IHE Devices Technical Framework standard introduces a new _family of interoperability profiles_, Service-oriented Device Point-of-care Interoperability (SDPi), that comprise four separate profiles: + +* SDPi-Plug-and-trust (*SDPi-P*) Profile +* SDPi-Reporting (*SDPi-R*) Profile +* SDPi-Alerting (*SDPi-A*) Profile +* SDPi-external Control (*SDPi-xC*) Profile + +To that end, the supplement includes updates to all three IHE DEV TF volumes, including: + +*TF-1 Profiles* + +* General overview of the SDPi architectural approach and integrated set of profiles +* Profile-specific sections +* Related appendices, for example the integration of this family of SDPi Profiles with other sources of requirements - use cases or reference standards + +*TF-2 Transactions* + +* Extensive new set of transactions based on IEEE 11073 Service-oriented Device Connectivity (SDC) medical device interoperability standards. +* Related appendices, for example the specialized use of web services messaging for device communication and gateways to other protocols or profiles + +*TF-3 Content Modules* + +* New content covering the application of IEEE 11073 SDC semantic standards to device content modules, with a primary focus on specifications related to the IEEE 11073-10207 BICEPS standard. + +NOTE: As explained in the https://profiles.ihe.net/GeneralIntro/ch-7.html#7.5[IHE Technical Framework Document Conventions], the acronym TF stands for Technical Framework, whereas the number immediately behind the hyphen in the "TF-X" notation stands for the volume number within a Technical Framework. + +[#supplement_clause_mapping_clinical_scenarios_to_profile_requirements] +=== Use Cases: Mapping Clinical Scenarios to Profile Requirements +IHE technical framework integration profile specifications include use case sections to ensure that the technical solutions are rooted in real-world application requirements. +These sections typically include a basic description of use case scenarios, identify the key systems that exchange information, application-level detail of the information exchanged, and perhaps even some sequence diagrams. +This information may also be used to drive the test cases that are used for conformity assessment, ensuring that the resulting specification implementation meets the intended needs. + +This supplement includes this same organization; however, it also defines a set of general, non-profile-specific clinical use cases that provide requirements, which may be mapped to multiple SDPi integration profiles. +Section <> provides a collection of these high-level clinical use cases. + +FOR READERS OF THIS SUPPLEMENT, a good strategy might be to first review the use cases in the Volume 1 appendix (e.g., <> ), and then review the specific profiles to which the clinical scenario requirements have been mapped. +Reviewing the use case specifications in this order will provide the needed context to understand what is presented in each profile. + +[#supplement_clause_joint_ihe_hl7_gemini_ses_mdi_project_development] +=== Joint IHE-HL7 Gemini SES+MDI Project Development +This supplement is the result of a joint https://confluence.hl7.org/x/Xzf9Aw[IHE-HL7 Gemini Device Interoperability program] which began early 2020. +Extensive notes and discussion materials are provided on the project's HL7 Confluence site, including a https://confluence.hl7.org/pages/viewpage.action?pageId=113674346#LibrarywithEVERYTHINGyoueverwantedtoknow...-GeneralUpdate&BriefingPresentations[Library with extensive presentations and other materials]. +This Library also includes *_briefings (slides and recordings) to provide background for those reviewing the specification_*. + +The joint IHE-HL7 devices team leveraged tools from both organizations, as well as participated jointly throughout the project's multi-year efforts. + +The methods currently employed are provided in the wiki article: https://github.com/IHE/DEV.SDPi/wiki/Program-Coordination-Co-Working-Spaces#program-coordination--co-working-spaces[Program Coordination & Co-Working Spaces]. + +[#supplement_clause_supplement_support_for_ri_mc_rr_using_asciidoc] +=== Supplement Support for RI+MC+RR using AsciiDoc +In addition to the supplement's technical specification content, a development approach has been advanced that represents added value to adopters and implementers over the traditional document oriented approach. +These are referred to as: + +[none] +. *_Requirements Interoperability + Model Centric + Regulatory Ready_* + +Or *RI+MC+RR* for short. + +These three objectives may be summarized as follows: + +[none] +* *Requirements Interoperability (RI)* +[none] +** Ability to integrate and automate requirements and capabilities from component specifications and standards to enable traceability and coverage at <> (<>) of the component product interface +* *Model Centric (MC)* +[none] +** Transition from a document-centric to a _computable model-based "single source of truth"_ specification from which the Technical Framework becomes a view of the model +* *Regulatory Ready (RR)* +[none] +** Enable CA test reports that are genuinely _"regulatory submission ready"_ (e.g., inclusion in a U.S. FDA 510(k) submission package) + +The SDPi {ihe_supplement_sdpi_revision} version of the supplement continues to make small but significant steps toward support of these objectives, especially Requirements Interoperability, as well as the use of AsciiDoc metadata to annotate the document sources for post-processing. +Clearly, moving toward <> specifications and full integration of <> will take considerable effort and time; however, this supplement represents a humble start in that direction. +Subsequent supplement versions will build upon these objectives and support a new level of rigor for connectathon and product conformity assessment testing and ultimately test reports that directly impact the challenges around medical product regulatory submissions. + +Additional discussion is provided in <>, and on the https://confluence.hl7.org/pages/viewpage.action?pageId=82906664#ConformityAssessment&Tooling-RI+MC+RRforMedTechSpecificationsInitiative[Gemini project's Confluence pages]. +See also related discussions on the Gemini Project's https://confluence.hl7.org/x/XhPUB[Pathway to an Ecosystem of Plug-and-Trust Products]. + + +[#supplement_clause_requirements_glossary] +=== Requirements Glossary + + +[%noheader] +[%autowidth] +[cols="1"] +|=== +a| *Editor's Note*: + +This "glossary" provides a defined set of requirements terminology and meta data is required in order to ensure consistency and processing / automation of requirements throughout the specification. + +It is differentiated from the IHE TF-0 Glossary in that it is specifically created to support the integration of formal requirements interoperability specification content; whereas, the IHE glossary provides general terminology more at the application level that is used throughout all IHE technical frameworks and profile specifications. + +|=== + diff --git a/asciidoc/sdpi-standard-issues.adoc b/asciidoc/sdpi-standard-issues.adoc new file mode 100644 index 00000000..f9cfdde1 --- /dev/null +++ b/asciidoc/sdpi-standard-issues.adoc @@ -0,0 +1,38 @@ + +[sdpi_offset=clear] +[#sdpi_issue_management] +== SDPi Issue Management + +[sdpi_offset=clear] +=== SDPi Issue Management + +*Standalone SDPi:* _Consider how this might change from STU/TI to Normative/FT, and organize it accordingly._ + +All SDPi standard issues are tracked in the https://github.com/IHE/DEV.SDPi/issues[IHE Github DEV.SDPi repository Issues section]. +Filter the issues on their "state" to see them. + + +* To see the full list of OPEN issues, go to https://github.com/IHE/DEV.SDPi/issues?q=is%3Aissue+is%3Aopen +* To see the full list of CLOSED issues, go to https://github.com/IHE/DEV.SDPi/issues?q=is%3Aissue+is%3Aclosed + +For more detailed information on how the Gemini SES+MDI program manages issues from identification to resolution to incorporation into this supplement, see the https://github.com/IHE/DEV.SDPi/wiki[_IHE SDPi wiki_]. + +[sdpi_offset=clear] +=== Open Issues + +The issues listed in this section or in https://github.com/IHE/DEV.SDPi/issues?q=is%3Aissue+is%3Aopen are open, and hence not yet ready for inclusion in the IHE DEV Technical Framework and not subject to comment or review. + +//==== Open Issues + +// open issues are inserted here + +//==== Topic of Interests + +// toi issues are inserted here + +[sdpi_offset=clear] +=== Closed Issues + +The issues listed in this section or in https://github.com/IHE/DEV.SDPi/issues?q=is%3Aissue+is%3Aclosed are closed. + +// closed issues are inserted here + diff --git a/asciidoc/sdpi-standard.adoc b/asciidoc/sdpi-standard.adoc new file mode 100644 index 00000000..0e9c803e --- /dev/null +++ b/asciidoc/sdpi-standard.adoc @@ -0,0 +1,161 @@ += Service-oriented Device Point-of-care Interoperability (SDPi) Technical Framework +:doctype: book +// CAUTION: do not change the xrefstyle attribute as otherwise numbering will be broken +:xrefstyle: short +:stylesdir: css +:!webfonts: +:!iconfont-remote: +:toc-title: Contents +:toc: left +:toclevels: 3 +:multipage-level: 2 +:sectnums: +:icons: font +:icon-set: fas +:imagesoutdir: images/ +:imagesdir: images/ +:docinfo: shared +:source-highlighter: highlight.js +:highlightjsdir: js/highlight + +// STANDALONE SDPi: Deferred is the refactoring of all "supplement" to "standard" language + +// Set the document attribute to automatically generate +// actor transactions table from semantic markup. Unset +// to use manual tables. +// https://docs.asciidoctor.org/asciidoc/latest/attributes/unset-attributes/ +:markup-actor-transactions-table: + +:sdpi_milestone_publication: SDPi 2.3 Publication +:sdpi_milestone_review: SDPi 2.3 Review + +:sdpi_version_major: 2 +:sdpi_version_minor: 4 +:sdpi_version_revision: 0 +// STANDALONE SDPi: QUESTION: Do we rework these to gemini_standard +:ihe_supplement_sdpi_revision: {sdpi_version_major}.{sdpi_version_minor}.{sdpi_version_revision} +:ihe_supplement_sdpi_revision_short: {sdpi_version_major}.{sdpi_version_minor} +:ihe_supplement_sdpi_revision_date: {localdatetime} +:ihe_supplement_sdpi_revision_label: Standard for Trial Use +:ihe_supplement_sdpi_publication_month: December 19, 2025 +:ihe_supplement_sdpi_public_comment_submission_deadline: N/A + +// Oid, assigned by IHE-DEV, for the SDPi specification +// https://wiki.ihe.net/index.php/PCD_OID_Management +:sdpi-parent-oid: 1.3.6.1.4.1.19376.1.6.2.10 + +{empty} + +ifeval::["{backend}" == "html5"] +++++ + +++++ + +[subs=attributes] +++++ +
+
+ + +
+
A Joint HL7-IHE Gemini Device Interoperability Project
+
+

Gemini

+ +

Technical Framework Standard

+ +

Service-oriented Device Point-of-care

+ +

Interoperability (SDPi)

+ +

Revision {ihe_supplement_sdpi_revision} — {ihe_supplement_sdpi_revision_label}

+ +

("Standalone" SDPi Standard - For Review)

+++++ +endif::[] +{empty} + + +[%noheader] +[cols="1,4"] +[frame=none,grid=none] +|=== +| *Publication Date:* +| {ihe_supplement_sdpi_publication_month} + +| *Build Date:* +| {ihe_supplement_sdpi_revision_date} + +| *Author:* +| Gemini Medical Device Interoperability Program Team (Joint HL7 & IHE Devices Working Groups) + +// STANDALONE SDPi: Should this field be included? What address? Or one for IHE and one for HL7? +| *Email:* +| DEV@ihe.net + +*Standalone SDPi:* _Should this email contact be included? If so, what address(es)? One for IHE and one for HL7?_ +|=== + +{empty} + + +*Published versions of this standard are available from both IHE and HL7:* + +* For HL7 publications: Search for "SDPi" on the https://www.hl7.org/implement/standards/product_matrix.cfm[HL7 Standards-based Product Grid] + +* For IHE publications: 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. +endif::[] + +[#supplement_clause_foreword,sdpi_offset=clear] += Foreword + +This Gemini standard is a joint development effort between Health Level Seven International (HL7) and Integrating the Healthcare Enterprise (IHE) devices working groups. +Its development and publication adheres to the consensus standards processes of both HL7, an ANSI accredited standards development organization, and IHE. +The title of this document, "Technical Framework *_Standard_*", reflects its unique status as a Gemini specification, utilizing the IHE Technical Framework organization and elements (e.g., integration profiles, actors, transactions, content modules), but processed as an HL7 specification that will be published as a "standalone" standard and will persist even when its status transitions to normative standard (HL7) or Final Text (IHE). + +To facilitate integration with the companion IHE Devices Technical Framework (final text) specification, a companion to this standard will be created for each edition: SDPi "Technical Framework Supplement", which will be organized according to IHE style guidelines, but it will be in major section outline only, with each section including a note indicating where the content is located in the published Gemini Technical Framework ("standalone") Standard document. +Given its alignment with the companion IHE specification, some section numbers are skipped in this document to facilitate its intended integration into the above-mentioned "supplement". +Skipped section numbers are already present in the Devices Technical Framework and will not require changes due to the incorporation of the supplement once it transitions to normative standard / final text status. + +Additionally, some content that may otherwise be only referenced by a "supplement" document and defined elsewhere in the existing technical framework, will be incorporated in this specification to ensure that it is internally cohesive and does not force the reader to unnecessarily consult other documents. + +Publication as a Standard for *Trial* Use (HL7) or *Trial* Implementation (IHE) reflects the continuous cycle of development, balloting and publication of the specification, to address addition of new capabilities as well as identified safety, effectiveness and security issues and enhancements. +Product developers are encouraged to use the standard, recognizing the potential impact of this continuous development cycle and its status as a _"trial use"_ standard. + + +This supplement is published on {ihe_supplement_sdpi_publication_month} for Trial Implementation and may be available for testing at subsequent IHE or HL7 testing events, such as an IHE Connectathon. +The standard may be amended based on the results of testing. +Following successful testing and implementation maturity, it will transition to a normative standard, and the companion IHE supplement will be incorporated into the Devices Technical Framework. +Comments are invited and can be submitted at https://www.ihe.net/DEV_Public_Comments/[Devices Public Comments] or by submitting a https://github.com/IHE/DEV.SDPi/issues/new/choose[GitHub Issue]. + +General information about IHE can be found at http://www.ihe.net/[IHE.net], and about HL7 can be found at https://www.hl7.org/index.cfm[HL7.org]. + +General information about the HL7 Devices Working Group can be found at https://www.hl7.org/Special/committees/healthcaredevices/index.cfm[HL7.org/healthcaredevices], and the IHE Devices domain can be found at https://www.ihe.net/ihe_domains/[IHE Domains]. + +Information about the organization of IHE Technical Frameworks and Supplements and the process used to create them can be found at https://www.ihe.net/resources/profiles/[Profiles] and https://www.ihe.net/about_ihe/ihe_process/[IHE Processes]. + +The current version of the IHE Devices Technical Framework can be found at https://profiles.ihe.net/DEV/[DEV Technical Framework]. + +include::sdpi-standard-intro.adoc[] + +include::sdpi-standard-issues.adoc[] + +// = Volume 0 -- IHE Technical Frameworks General Introduction + +include::volume0/tf0-main.adoc[] + +// = Volume 1 -- Profiles + +include::volume1/tf1-main.adoc[] + +// = Volume 2 -- Transactions + +include::volume2/tf2-main.adoc[] + +// = Volume 3 -- Content Modules + +include::volume3/tf3-main.adoc[] + diff --git a/asciidoc/sdpi-supplement.adoc b/asciidoc/sdpi-supplement.adoc index 41fe29b0..b868b1f1 100644 --- a/asciidoc/sdpi-supplement.adoc +++ b/asciidoc/sdpi-supplement.adoc @@ -1,153 +1,202 @@ -= Service-oriented Device Point-of-care Interoperability (SDPi) Technical Framework -:doctype: book -// CAUTION: do not change the xrefstyle attribute as otherwise numbering will be broken -:xrefstyle: short -:stylesdir: css -:!webfonts: -:!iconfont-remote: -:toc-title: Contents -:toc: left -:toclevels: 3 -:multipage-level: 2 -:sectnums: -:icons: font -:icon-set: fas -:imagesoutdir: images/ -:imagesdir: images/ -:docinfo: shared -:source-highlighter: highlight.js -:highlightjsdir: js/highlight - -// Set the document attribute to automatically generate -// actor transactions table from semantic markup. Unset -// to use manual tables. -// https://docs.asciidoctor.org/asciidoc/latest/attributes/unset-attributes/ -:markup-actor-transactions-table: - -:sdpi_milestone_publication: SDPi 2.4 Publication -:sdpi_milestone_review: SDPi 2.4 Review - -:sdpi_version_major: 2 -:sdpi_version_minor: 4 -:sdpi_version_revision: 1 -:ihe_supplement_sdpi_revision: {sdpi_version_major}.{sdpi_version_minor}.{sdpi_version_revision} -:ihe_supplement_sdpi_revision_short: {sdpi_version_major}.{sdpi_version_minor} -:ihe_supplement_sdpi_revision_date: {localdatetime} -:ihe_supplement_sdpi_revision_label: Standard for Trial Use / Implementation -:ihe_supplement_sdpi_publication_month: May 7, 2026 -:ihe_supplement_sdpi_public_comment_submission_deadline: N/A - -// Oid, assigned by IHE-DEV, for the SDPi specification -// https://wiki.ihe.net/index.php/PCD_OID_Management -:sdpi-parent-oid: 1.3.6.1.4.1.19376.1.6.2.10 - -{empty} + -ifeval::["{backend}" == "html5"] -++++ - -++++ - -[subs=attributes] -++++ -
-
- - -
-
A Joint HL7-IHE Gemini Device Interoperability Project
-
-

IHE Devices

- -

Technical Framework Supplement

- -

Service-oriented Device Point-of-care

- -

Interoperability (SDPi)

- -

Revision {ihe_supplement_sdpi_revision} — {ihe_supplement_sdpi_revision_label}

-++++ -endif::[] -{empty} + - -[%noheader] -[cols="1,4"] -[frame=none,grid=none] -|=== -| *Publication Date:* -| {ihe_supplement_sdpi_publication_month} - -| *Build Date:* -| {ihe_supplement_sdpi_revision_date} - -| *Author:* -| HL7 Devices Working Group & IHE Devices Technical Committee - -| *Email:* -| DEV@ihe.net -|=== - -{empty} + - -*Please verify you have the most recent version of this document.* -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. -endif::[] - -[#supplement_clause_foreword,sdpi_offset=clear] -= Foreword - -This Gemini standard is a joint development effort between Health Level Seven International (HL7) and Integrating the Healthcare Enterprise (IHE) devices working groups. -Its development and publication adheres to the consensus standards processes of both HL7, an ANSI accredited standards development organization, and IHE. -Publication as a Standard for Trial Use (HL7) or Trial Implementation (IHE) reflects the continuous cycle of development, balloting and publication of the specification, to address addition of new capabilities as well as identified safety, effectiveness and security issues and enhancements. -Product developers are encouraged to use the standard, recognizing the potential impact of this continuous development cycle. - -This is a supplement to the IHE Devices Technical Framework. Each supplement undergoes a process of public comment and trial implementation before being incorporated into the volumes of the Technical Frameworks. - -This supplement is published on {ihe_supplement_sdpi_publication_month} for Trial Implementation and may be available for testing at subsequent IHE Connectathons. The supplement may be amended based on the results of testing. Following successful testing it will be incorporated into the Devices Technical Framework. Comments are invited and can be submitted at https://www.ihe.net/DEV_Public_Comments/[Devices Public Comments] or by submitting a https://github.com/IHE/DEV.SDPi/issues/new/choose[GitHub Issue]. - -Some section numbers are skipped in this supplement because it is designed for later incorporation into the Devices Technical Framework. Skipped section numbers are present in the Devices Technical Framework, and will not require changes due to the incorporation of this supplement. - -This supplement describes changes to the existing technical framework documents. - -“Boxed” instructions like the sample below indicate to the Volume Editor how to integrate the relevant section(s) into the relevant Technical Framework volume. -|=== -|__Amend section W.X by the following:__ -|=== - -Where the amendment adds text, make the added text +++bold underline+++. -Where the amendment removes text, make the removed text +++bold strikethrough+++. -When entire new sections are added, introduce with editor’s instructions to “add new text” or similar, which for readability are not bolded or underlined. - -General information about IHE can be found at http://www.ihe.net/[IHE.net]. - -Information about the IHE Devices domain can be found at https://www.ihe.net/ihe_domains/[IHE Domains]. - -Information about the organization of IHE Technical Frameworks and Supplements and the process used to create them can be found at https://www.ihe.net/resources/profiles/[Profiles] and https://www.ihe.net/about_ihe/ihe_process/[IHE Processes]. - -The current version of the IHE Devices Technical Framework can be found at https://profiles.ihe.net/DEV/[DEV Technical Framework]. - -include::sdpi-supplement-intro.adoc[] - -include::sdpi-supplement-issues.adoc[] - -// = Volume 0 -- IHE Technical Frameworks General Introduction - -include::volume0/tf0-main.adoc[] - -// = Volume 1 -- Profiles - -include::volume1/tf1-main.adoc[] - -// = Volume 2 -- Transactions - -include::volume2/tf2-main.adoc[] - -// = Volume 3 -- Content Modules - -include::volume3/tf3-main.adoc[] - += Service-oriented Device Point-of-care Interoperability (SDPi) Technical Framework +:doctype: book +// CAUTION: do not change the xrefstyle attribute as otherwise numbering will be broken +:xrefstyle: short +:stylesdir: css +:!webfonts: +:!iconfont-remote: +:toc-title: Contents +:toc: left +:toclevels: 3 +:multipage-level: 2 +:sectnums: +:icons: font +:icon-set: fas +:imagesoutdir: images/ +:imagesdir: images/ +:docinfo: shared +:source-highlighter: highlight.js +:highlightjsdir: js/highlight + +// Set the document attribute to automatically generate +// actor transactions table from semantic markup. Unset +// to use manual tables. +// https://docs.asciidoctor.org/asciidoc/latest/attributes/unset-attributes/ +:markup-actor-transactions-table: + +:sdpi_milestone_publication: SDPi 2.4 Publication +:sdpi_milestone_review: SDPi 2.4 Review + +:sdpi_version_major: 2 +:sdpi_version_minor: 4 +:sdpi_version_revision: 1 +:ihe_supplement_sdpi_revision: {sdpi_version_major}.{sdpi_version_minor}.{sdpi_version_revision} +:ihe_supplement_sdpi_revision_short: {sdpi_version_major}.{sdpi_version_minor} +:ihe_supplement_sdpi_revision_date: {localdatetime} +:ihe_supplement_sdpi_revision_label: Standard for Trial Use / Implementation +:ihe_supplement_sdpi_publication_month: May 7, 2026 +:ihe_supplement_sdpi_public_comment_submission_deadline: N/A + +// Oid, assigned by IHE-DEV, for the SDPi specification +// https://wiki.ihe.net/index.php/PCD_OID_Management +// STANDALONE SDPi: Disabled the following line ... we may eventually need something in this supplement for OIDs but breaking it now makes sure that this is a SLIM document to start with! +// :sdpi-parent-oid: 1.3.6.1.4.1.19376.1.6.2.10 + +{empty} + +ifeval::["{backend}" == "html5"] +++++ + +++++ + +[subs=attributes] +++++ +
+
+ + +
+
A Joint HL7-IHE Gemini Device Interoperability Project
+
+

IHE Devices

+ +

Technical Framework Supplement

+ +

Service-oriented Device Point-of-care

+ +

Interoperability (SDPi)

+ +

Revision {ihe_supplement_sdpi_revision} — {ihe_supplement_sdpi_revision_label}

+++++ +endif::[] +{empty} + + +[%noheader] +[cols="1,4"] +[frame=none,grid=none] +|=== +| *Publication Date:* +| {ihe_supplement_sdpi_publication_month} + +| *Build Date:* +| {ihe_supplement_sdpi_revision_date} + +| *Author:* +| HL7 Devices Working Group & IHE Devices Technical Committee + +| *Email:* +| DEV@ihe.net +|=== + +{empty} + + +*Please verify you have the most recent version of this document.* +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. +endif::[] + +[#supplement_clause_foreword,sdpi_offset=clear] += Foreword + +This Gemini standard is a joint development effort between Health Level Seven International (HL7) and Integrating the Healthcare Enterprise (IHE) devices working groups. +Its development and publication adheres to the consensus standards processes of both HL7, an ANSI accredited standards development organization, and IHE. +Publication as a Standard for Trial Use (HL7) or Trial Implementation (IHE) reflects the continuous cycle of development, balloting and publication of the specification, to address addition of new capabilities as well as identified safety, effectiveness and security issues and enhancements. +Product developers are encouraged to use the standard, recognizing the potential impact of this continuous development cycle. + +This is a supplement to the IHE Devices Technical Framework. Each supplement undergoes a process of public comment and trial implementation before being incorporated into the volumes of the Technical Frameworks. + +This supplement is published on {ihe_supplement_sdpi_publication_month} for Trial Implementation and may be available for testing at subsequent IHE Connectathons. The supplement may be amended based on the results of testing. Following successful testing it will be incorporated into the Devices Technical Framework. Comments are invited and can be submitted at https://www.ihe.net/DEV_Public_Comments/[Devices Public Comments] or by submitting a https://github.com/IHE/DEV.SDPi/issues/new/choose[GitHub Issue]. + +Some section numbers are skipped in this supplement because it is designed for later incorporation into the Devices Technical Framework. Skipped section numbers are present in the Devices Technical Framework, and will not require changes due to the incorporation of this supplement. + +This supplement describes changes to the existing technical framework documents. + +“Boxed” instructions like the sample below indicate to the Volume Editor how to integrate the relevant section(s) into the relevant Technical Framework volume. +|=== +|__Amend section W.X by the following:__ +|=== + +Where the amendment adds text, make the added text +++bold underline+++. +Where the amendment removes text, make the removed text +++bold strikethrough+++. +When entire new sections are added, introduce with editor’s instructions to “add new text” or similar, which for readability are not bolded or underlined. + +General information about IHE can be found at http://www.ihe.net/[IHE.net]. + +Information about the IHE Devices domain can be found at https://www.ihe.net/ihe_domains/[IHE Domains]. + +Information about the organization of IHE Technical Frameworks and Supplements and the process used to create them can be found at https://www.ihe.net/resources/profiles/[Profiles] and https://www.ihe.net/about_ihe/ihe_process/[IHE Processes]. + +The current version of the IHE Devices Technical Framework can be found at https://profiles.ihe.net/DEV/[DEV Technical Framework]. + +// STANDALONE SDPi: 1st refactoring, moved copies of these files into the supplement/ directory +// include::supplement/sdpi-supplement-intro.adoc[] + +// include::supplement/sdpi-standard-issues.adoc[] + +// = Volume 0 -- IHE Technical Frameworks General Introduction + +// STANDALONE SDPi: 1st refactoring, simply COMMENTED OUT the 3 volumes +//include::volume0/tf0-main.adoc[] + +// +// = Volume 1 -- Profiles +// +//include::volume1/tf1-main.adoc[] + +// Appendix A +//// +[appendix#vol1_appendix_a_requirements_management_for_p_n_t_interperability,sdpi_offset=A] +== Requirements Management for Plug-and-Trust Interoperability + +[#vol1_clause_sdpi_requirements_modeling_integration] +=== SDPi Requirements Modeling & Integration + +[#vol1_clause_appendix_a_ses_considerations_section_template] +=== SES Considerations Section Template + +// Appendix B +[appendix#vol1_appendix_b_references,sdpi_offset=B] +== References + +[%noheader] +[%autowidth] +[cols="1"] +|=== +| *{supplement_note}*: +IHE Supplement TF-1:B References Appendix content is provided in *Gemini Standard TF-1:B*. +|=== + + +[bibliography#vol1_appendix_b_referenced_standards] +=== Referenced Standards + +[%noheader] +[%autowidth] +[cols="1"] +|=== +| *{supplement_note}*: +IHE Supplement TF-1:B.1 Referenced Standards content is provided in *Gemini Standard TF-1:B.1 Referenced Standards*. +|=== + +// Appendix C + +[appendix#vol1_appendix_c_dpi_use_cases,sdpi_offset=C] +== Device Point-of-care Interoperability (DPI) Use Cases + +[#vol1_clause_appendix_c_use_case_sicdmp,sdpi_offset=4] +=== Use Case Feature {var_use_case_id}: <> (<>) + +// +// = Volume 2 -- Transactions +// +//include::volume2/tf2-main.adoc[] +// +// = Volume 3 -- Content Modules +// +//include::volume3/tf3-main.adoc[] + +//// diff --git a/asciidoc/sdpi-supplement-intro.adoc b/asciidoc/supplement/sdpi-supplement-intro.adoc similarity index 100% rename from asciidoc/sdpi-supplement-intro.adoc rename to asciidoc/supplement/sdpi-supplement-intro.adoc diff --git a/asciidoc/sdpi-supplement-issues.adoc b/asciidoc/supplement/sdpi-supplement-issues.adoc similarity index 100% rename from asciidoc/sdpi-supplement-issues.adoc rename to asciidoc/supplement/sdpi-supplement-issues.adoc diff --git a/sdpi-supplement/referenced-artifacts/sdpi-content-modules.json b/sdpi-supplement/referenced-artifacts/sdpi-content-modules.json deleted file mode 100644 index 5255d0a6..00000000 --- a/sdpi-supplement/referenced-artifacts/sdpi-content-modules.json +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "id": "biceps", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.8.1" - ], - "label": "IEEE 11073-10207 BICEPS Content Modules", - "anchor": "vol3_clause_sdc_biceps_semantic_content" - }, - { - "id": "infusion-pump", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.8.11" - ], - "label": "Device: Infusion Pump", - "anchor": "vol3_clause_device_infusion_pump" - }, - { - "id": "ventilator", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.8.12" - ], - "label": "Device: Ventilator", - "anchor": "_device_ventilator" - }, - { - "id": "physiological-monitor", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.8.13" - ], - "label": "Device: Physiologic monitor", - "anchor": "_device_physiologic_monitor" - }, - { - "id": "surgical", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.8.14" - ], - "label": "Device: Surgical", - "anchor": "_device_surgical" - } -] \ No newline at end of file diff --git a/sdpi-supplement/referenced-artifacts/sdpi-profiles.json b/sdpi-supplement/referenced-artifacts/sdpi-profiles.json deleted file mode 100644 index e050ea4b..00000000 --- a/sdpi-supplement/referenced-artifacts/sdpi-profiles.json +++ /dev/null @@ -1,1387 +0,0 @@ -[ - { - "profileId": "sdpi-p", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.11" - ], - "anchor": "vol1_clause_sdpi_p_profile", - "label": "Plug-and-trust Profile", - "transactionReferences": [ - { - "transactionId": "DEV-23", - "obligations": [ - { - "contribution": "RECEIVER", - "obligation": "OPTIONAL", - "actorId": "somds_consumer" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-24", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-25", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-27", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-28", - "obligations": [ - { - "contribution": "RECEIVER", - "obligation": "OPTIONAL", - "actorId": "somds_consumer" - }, - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-29", - "obligations": [ - { - "contribution": "RECEIVER", - "obligation": "REQUIRED", - "actorId": "somds_consumer" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-30", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-33", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-46", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-47", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_consumer" - } - ] - }, - { - "transactionId": "DEV-26", - "placeholderName": "Discover system context and capabilities", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_consumer" - } - ] - }, - { - "transactionId": "DEV-31", - "placeholderName": "Set provider state", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_consumer" - } - ] - }, - { - "transactionId": "DEV-32", - "placeholderName": "Retrieve archive data", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_consumer" - } - ] - } - ], - "contentModuleReferences": [ - { - "contentModuleId": "biceps", - "actorId": "biceps_content_creator", - "obligation": "REQUIRED" - }, - { - "contentModuleId": "infusion-pump", - "actorId": "biceps_content_creator", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "ventilator", - "actorId": "biceps_content_creator", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "physiological-monitor", - "actorId": "biceps_content_creator", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "surgical", - "actorId": "biceps_content_creator", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "anesthesia", - "actorId": "biceps_content_creator", - "obligation": "OPTIONAL", - "placeholderName": "Anesthesia devies SDC/BICEPS content module" - }, - { - "contentModuleId": "dialysis", - "actorId": "biceps_content_creator", - "obligation": "OPTIONAL", - "placeholderName": "Dialysis devices SDC/BICEPS content module" - }, - { - "contentModuleId": "biceps", - "actorId": "biceps_content_consumer", - "obligation": "REQUIRED" - }, - { - "contentModuleId": "infusion-pump", - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "ventilator", - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "physiological-monitor", - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "surgical", - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL" - }, - { - "contentModuleId": "anesthesia", - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL", - "placeholderName": "Anesthesia devies SDC/BICEPS content module" - }, - { - "contentModuleId": "dialysis", - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL", - "placeholderName": "Dialysis devices SDC/BICEPS content module" - } - ], - "options": [ - { - "id": "sdpi-p-managed-discovery", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.11.1" - ], - "anchor": "vol1_clause_sdpi_p_option_managed_discovery", - "label": "Managed Discovery Option", - "transactionReferences": [ - { - "transactionId": "DEV-46", - "obligations": [ - { - "contribution": "RECEIVER", - "obligation": "REQUIRED", - "actorId": "discovery_proxy" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_provider" - } - ] - }, - { - "transactionId": "DEV-47", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "discovery_proxy" - } - ] - } - ] - }, - { - "id": "sdpi-p-gateway-direction-export", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.11.2" - ], - "anchor": "vol1_spec_sdpi_p_option_gateway_export", - "label": "Gateway Export Direction Option", - "transactionReferences": [ - { - "transactionId": "DEV-23", - "obligations": [ - { - "contribution": "RECEIVER", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-24", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-25", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-27", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-28", - "obligations": [ - { - "contribution": "RECEIVER", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-29", - "obligations": [ - { - "contribution": "RECEIVER", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-30", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-33", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-47", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - } - ] - }, - { - "id": "sdpi-p-gateway-direction-import", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.11.3" - ], - "anchor": "vol1_spec_sdpi_p_option_gateway_import", - "label": "Gateway Import Direction Option", - "transactionReferences": [ - { - "transactionId": "DEV-23", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-24", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-25", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-27", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-28", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-29", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-30", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-33", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - }, - { - "transactionId": "DEV-46", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_connector" - } - ] - } - ] - } - ], - "actors": [ - { - "id": "somds_participant", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.40" - ], - "label": "SOMDS Participant", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_participant" - }, - { - "id": "somds_provider", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.41" - ], - "label": "SOMDS Provider", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_provider", - "requiredActorGroupings": [ - { - "actorId": "somds_participant" - } - ] - }, - { - "id": "somds_consumer", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.30" - ], - "label": "SOMDS Consumer", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_consumer", - "requiredActorGroupings": [ - { - "actorId": "somds_participant" - } - ] - }, - { - "id": "somds_connector", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.29" - ], - "label": "SOMDS Connector", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_connector", - "requiredActorGroupings": [ - { - "actorId": "somds_participant" - } - ] - }, - { - "id": "somds_fhir_gateway", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.100" - ], - "label": "SOMDS FHIR Gateway", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_fhir_gateway", - "requiredActorGroupings": [ - { - "actorId": "somds_consumer", - "optionId": "sdpi-p-gateway-direction-export" - }, - { - "actorId": "somds_provider", - "optionId": "sdpi-p-gateway-direction-import" - } - ] - }, - { - "id": "somds_v2_gateway", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.44" - ], - "label": "SOMDS V2 Gateway", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_v2_gateway", - "requiredActorGroupings": [ - { - "actorId": "somds_consumer", - "optionId": "sdpi-p-gateway-direction-export" - }, - { - "actorId": "somds_provider", - "optionId": "sdpi-p-gateway-direction-import" - } - ] - }, - { - "id": "somds_sensor_gateway", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.42" - ], - "label": "SOMDS Sensor Gateway", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_sensor_gateway" - }, - { - "id": "somds_smart_app", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.43" - ], - "label": "SOMDS Smart App Platform", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_somds_smart_app_platform" - }, - { - "id": "biceps_content_creator", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.27" - ], - "label": "BICEPS Content Creator", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_biceps_content_creator" - }, - { - "id": "biceps_content_consumer", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.26" - ], - "label": "BICEPS Content Consumer", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_biceps_content_consumer" - }, - { - "id": "discovery_proxy", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.32" - ], - "label": "Discovery Proxy", - "profile": "sdpi-p", - "anchor": "vol1_clause_sdpi_p_discovery_proxy" - } - ], - "use-case-support": [ - { - "useCaseId": "stad", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.11.12.1" - ], - "anchor": "_synchronized_time_across_devices_stad", - "obligations": [ - { - "actorId": "somds_participant", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_provider", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_consumer", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_connector", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_fhir_gateway", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_v2_gateway", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_sensor_gateway", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_smart_app", - "obligation": "REQUIRED" - }, - { - "actorId": "biceps_content_creator", - "obligation": "REQUIRED" - }, - { - "actorId": "biceps_content_consumer", - "obligation": "REQUIRED" - }, - { - "actorId": "discovery_proxy", - "obligation": "REQUIRED" - } - ] - }, - { - "useCaseId": "sicdsp", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.11.12.2" - ], - "anchor": "_standalone_icu_dashboard_single_patient_sicdsp", - "obligations": [ - { - "actorId": "somds_consumer", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_connector", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_smart_app", - "obligation": "OPTIONAL" - }, - { - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "sicdmp", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.11.12.3" - ], - "anchor": "_standalone_icu_dashboard_multiple_patient_sicdmp", - "obligations": [ - { - "actorId": "somds_consumer", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_connector", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_smart_app", - "obligation": "OPTIONAL" - }, - { - "actorId": "biceps_content_consumer", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "ddes", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.11.12.4" - ], - "anchor": "_device_data_to_enterprise_systems_ddes", - "obligations": [ - { - "actorId": "somds_connector", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_fhir_gateway", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_v2_gateway", - "obligation": "REQUIRED" - }, - { - "actorId": "somds_sensor_gateway", - "obligation": "REQUIRED" - } - ] - }, - { - "useCaseId": "acns", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.11.12.5" - ], - "anchor": "_alerts_to_clinician_notification_systems_acns", - "obligations": [ - { - "actorId": "somds_connector", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_fhir_gateway", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_v2_gateway", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_sensor_gateway", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "aars", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.11.12.6" - ], - "anchor": "_alerts_to_alert_recording_systems_aars", - "obligations": [ - { - "actorId": "somds_connector", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_fhir_gateway", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_v2_gateway", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_sensor_gateway", - "obligation": "OPTIONAL" - } - ] - } - ] - }, - { - "profileId": "sdpi-r", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.12" - ], - "anchor": "vol1_clause_sdpi_r_profile", - "label": "Reporting Profile", - "transactionReferences": [ - { - "transactionId": "DEV-35", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_data_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_data_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_dec_gateway" - } - ] - }, - { - "transactionId": "DEV-36", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_data_provider" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_data_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_dec_gateway" - } - ] - }, - { - "transactionId": "DEV-37", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_medical_data_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_data_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_dec_gateway" - } - ] - } - ], - "actors": [ - { - "id": "somds_medical_data_provider", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.39" - ], - "label": "SOMDS Medical Data Provider", - "profile": "sdpi-r", - "anchor": "vol1_clause_sdpi_r_somds_medical_data_provider", - "requiredActorGroupings": [ - { - "actorId": "somds_provider" - } - ] - }, - { - "id": "somds_medical_data_consumer", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.38" - ], - "label": "SOMDS Medical Data Consumer", - "profile": "sdpi-r", - "anchor": "vol1_clause_sdpi_r_somds_medical_data_consumer", - "requiredActorGroupings": [ - { - "actorId": "somds_consumer" - } - ] - }, - { - "id": "somds_dec_gateway", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.31" - ], - "label": "SOMDS DEC Gateway", - "profile": "sdpi-r", - "anchor": "vol1_clause_sdpi_r_somds_dec_gateway", - "requiredActorGroupings": [ - { - "actorId": "somds_v2_gateway" - } - ] - }, - { - "id": "somds_fhir_medical_data_gateway", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.33" - ], - "label": "SOMDS FHIR Medical Data Gateway", - "profile": "sdpi-r", - "anchor": "vol1_spec_sdpi_r_actor_somds_fhir_medical_data_gateway" - } - ], - "use-case-support": [ - { - "useCaseId": "sicdsp", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.12.12.1" - ], - "anchor": "_standalone_icu_dashboard_single_patient_sicdsp_2", - "obligations": [ - { - "actorId": "somds_medical_data_consumer", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "sicdmp", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.12.12.2" - ], - "anchor": "_standalone_icu_dashboard_multiple_patient_sicdmp_2", - "obligations": [ - { - "actorId": "somds_medical_data_consumer", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "ddes", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.12.12.3" - ], - "anchor": "_device_data_to_enterprise_systems_ddes_2", - "obligations": [ - { - "actorId": "somds_dec_gateway", - "obligation": "OPTIONAL" - }, - { - "actorId": "somds_fhir_medical_data_gateway", - "obligation": "OPTIONAL" - } - ] - } - ] - }, - { - "profileId": "sdpi-a", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.13" - ], - "anchor": "vol1_clause_sdpi_a_profile", - "label": "Alerting Profile", - "transactionReferences": [ - { - "transactionId": "DEV-38", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_acm_gateway" - } - ] - }, - { - "transactionId": "DEV-39", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_consumer" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_acm_gateway" - } - ] - }, - { - "transactionId": "DEV-40", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_medical_alert_consumer" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_acm_gateway" - } - ] - }, - { - "transactionId": "DEV-41", - "placeholderName": "Manage medical alert delegation", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_medical_alert_consumer" - } - ] - }, - { - "transactionId": "DEV-42", - "placeholderName": "Delegate medical alert", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "RESPONDER", - "obligation": "OPTIONAL", - "actorId": "somds_medical_alert_consumer" - } - ] - }, - { - "transactionId": "DEV-43", - "placeholderName": "Update alert acknowledgement status", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_consumer" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_acm_gateway" - } - ] - } - ], - "options": [ - { - "id": "alert_delegation", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.11.4" - ], - "anchor": "vol1_clause_sdpi_a_actor_option_alert_delegation", - "label": "Alert Delegation Option", - "transactionReferences": [ - { - "transactionId": "DEV-41", - "placeholderName": "Manage medical alert delegation", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_consumer" - } - ] - }, - { - "transactionId": "DEV-42", - "placeholderName": "Delegate medical alert", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_provider" - }, - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_alert_consumer" - } - ] - } - ] - }, - { - "id": "alert_user_acknowledgement", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.11.5" - ], - "anchor": "vol1_clause_sdpi_a_actor_option_alert_user_acknowledgement", - "label": "Alert User Acknowledgement Option" - }, - { - "id": "remote_alert_signaling", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.11.6" - ], - "anchor": "vol1_clause_sdpi_a_actor_option_remote_alert_signaling", - "label": "Remote Alert Signaling", - "transactionReferences": [ - { - "transactionId": "DEV-38", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_acm_gateway" - } - ] - }, - { - "transactionId": "DEV-39", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_acm_gateway" - } - ] - }, - { - "transactionId": "DEV-40", - "obligations": [ - { - "contribution": "INITIATOR", - "obligation": "OPTIONAL", - "actorId": "somds_acm_gateway" - } - ] - } - ] - } - ], - "actors": [ - { - "id": "somds_medical_alert_provider", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.35" - ], - "label": "SOMDS Medical Alert Provider", - "profile": "sdpi-a", - "anchor": "vol1_clause_sdpi_a_somds_medical_alert_provider", - "requiredActorGroupings": [ - { - "actorId": "somds_provider" - } - ] - }, - { - "id": "somds_medical_alert_consumer", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.34" - ], - "label": "SOMDS Medical Alert Consumer", - "profile": "sdpi-a", - "anchor": "vol1_clause_sdpi_a_somds_medical_alert_consumer", - "requiredActorGroupings": [ - { - "actorId": "somds_consumer" - } - ] - }, - { - "id": "somds_acm_gateway", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.28" - ], - "label": "SOMDS ACM Gateway", - "profile": "sdpi-a", - "anchor": "vol1_clause_sdpi_a_somds_acm_gateway", - "requiredActorGroupings": [ - { - "actorId": "somds_v2_gateway" - } - ] - } - ], - "use-case-support": [ - { - "useCaseId": "sicdsp", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.13.12.1" - ], - "anchor": "_standalone_icu_dashboard_single_patient_sicdsp_3", - "obligations": [ - { - "actorId": "somds_medical_alert_consumer", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "sicdmp", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.13.12.2" - ], - "anchor": "_standalone_icu_dashboard_multiple_patient_sicdmp_3", - "obligations": [ - { - "actorId": "somds_medical_alert_consumer", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "acns", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.13.12.3" - ], - "anchor": "_alerts_to_clinician_notification_systems_acns_2", - "obligations": [ - { - "actorId": "somds_acm_gateway", - "obligation": "OPTIONAL" - } - ] - }, - { - "useCaseId": "aars", - "oid": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.13.12.3" - ], - "anchor": "_alerts_to_alert_recording_systems_aars_2", - "obligations": [ - { - "actorId": "somds_acm_gateway", - "obligation": "OPTIONAL" - } - ] - } - ] - }, - { - "profileId": "sdpi-xc", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.2.14" - ], - "anchor": "vol1_clause_sdpi_xc_profile", - "label": "External Control Profile", - "transactionReferences": [ - { - "transactionId": "DEV-44", - "placeholderName": "Manage medical external control", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_control_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_control_consumer" - } - ] - }, - { - "transactionId": "DEV-45", - "placeholderName": "Invoke medical control services", - "obligations": [ - { - "contribution": "RESPONDER", - "obligation": "REQUIRED", - "actorId": "somds_medical_control_provider" - }, - { - "contribution": "INITIATOR", - "obligation": "REQUIRED", - "actorId": "somds_medical_control_consumer" - } - ] - } - ], - "actors": [ - { - "id": "somds_medical_control_provider", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.37" - ], - "label": "SOMDS Medical Control Provider", - "profile": "sdpi-xc", - "anchor": "vol1_clause_sdpi_xc_somds_medical_control_provider", - "requiredActorGroupings": [ - { - "actorId": "somds_provider" - } - ] - }, - { - "id": "somds_medical_control_consumer", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.3.36" - ], - "label": "SOMDS Medical Control Consumer", - "profile": "sdpi-xc", - "anchor": "vol1_clause_sdpi_xc_somds_medical_control_consumer", - "requiredActorGroupings": [ - { - "actorId": "somds_consumer" - } - ] - } - ] - } -] \ No newline at end of file diff --git a/sdpi-supplement/referenced-artifacts/sdpi-requirements.json b/sdpi-supplement/referenced-artifacts/sdpi-requirements.json deleted file mode 100644 index 52e9d0ea..00000000 --- a/sdpi-supplement/referenced-artifacts/sdpi-requirements.json +++ /dev/null @@ -1,8075 +0,0 @@ -[ - { - "type": "tech-feature", - "actors": [ - "somds_provider", - "discovery_proxy" - ], - "requirementNumber": 1021, - "localId": "R1021", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1021", - "level": "SHALL", - "owner": { - "type": "profile-option", - "id": "sdpi-p-managed-discovery" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "When the RefProfile:sdpi-p[profile-option-id=\"sdpi-p-managed-discovery\"] is enabled for a RefActor:somds_provider[] actor, then it shall use the RefTransaction:DEV-46[] transaction to update the RefActor:discovery_proxy[] actor on its network presence and departure." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "<>, §2.2.2, Managed mode." - } - ] - } - ] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1022, - "localId": "R1022", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1022", - "level": "SHALL", - "owner": { - "type": "profile-option", - "id": "sdpi-p-managed-discovery" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> Actor is configured or provisioned for the <>, but the proxy system is not available, then the <> shall revert back to \"ad hoc\" discovery mode." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer", - "somds_provider", - "discovery_proxy" - ], - "requirementNumber": 1023, - "localId": "R1023", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1023", - "level": "SHALL", - "owner": { - "type": "profile-option", - "id": "sdpi-p-managed-discovery" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "When the RefProfile:sdpi-p[profile-option-id=\"sdpi-p-managed-discovery\"] is enabled for a RefActor:somds_consumer[] actor, then it shall use the RefTransaction:DEV-47[] transaction to retrieve RefActor:somds_provider[] network presence metadata from the RefActor:discovery_proxy[] actor." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "When retrieving network presence metadata from a <> Actor, a <> may be specified as a filter to identify a specific subset of <> systems." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may optionally use the <> transaction to subscribe to all metadata updates from a set of <> systems, essentially using the <> Actor as a pass through for <> <> transactions." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1024, - "localId": "R1024", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1024", - "level": "SHALL", - "owner": { - "type": "profile-option", - "id": "sdpi-p-managed-discovery" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> Actor is configured or provisioned for the <>, but the proxy system is not available, then the <> shall revert back to \"ad hoc\" discovery mode." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "discovery_proxy" - ], - "requirementNumber": 1025, - "localId": "R1025", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1025", - "level": "SHALL", - "owner": { - "type": "profile-option", - "id": "sdpi-p-managed-discovery" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "In order to ensure that a system's network presence information is up-to-date and valid, during the period when the <> indicates that a system is present, it shall provide some means to determine that this state is still true." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "For example, issuing a periodic \"heartbeat\" check message or cable-connected check.", - "Specification of these means will be provided for in the transport-specific implementation specification for the RefTransaction:DEV-46[] transaction." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_connector", - "somds_consumer", - "somds_provider" - ], - "requirementNumber": 1040, - "localId": "R1040", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1040", - "level": "SHALL", - "owner": { - "type": "profile", - "id": "sdpi-p" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "Each gateway actor, which is an instance of the abstract", - "<> Actor, shall be grouped with either", - "a RefActor:somds_consumer[] Actor or RefActor:somds_provider[] Actor or both." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_connector", - "somds_consumer" - ], - "requirementNumber": 1041, - "localId": "R1041", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1041", - "level": "SHALL", - "owner": { - "type": "profile-option", - "id": "sdpi-p-gateway-direction-export" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "Each gateway actor instance of the abstract", - "<> Actor, that selects the", - "Gateway Export Direction Option shall be grouped with a RefActor:somds_consumer[] Actor." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_connector", - "somds_provider" - ], - "requirementNumber": 1042, - "localId": "R1042", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1042", - "level": "SHALL", - "owner": { - "type": "profile-option", - "id": "sdpi-p-gateway-direction-import" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "Each gateway actor instance of the abstract", - "<> Actor, that selects the", - "Gateway Import Direction Option shall be grouped with a RefActor:somds_provider[] Actor." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1542, - "localId": "R1542", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1542", - "level": "SHALL", - "owner": { - "type": "profile", - "id": "sdpi-p" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "When a <> disables one or more <>s, the <> shall inform the affected users." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1543, - "localId": "R1543", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1543", - "level": "SHALL", - "owner": { - "type": "profile", - "id": "sdpi-p" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> disables one or more <>s, the <> shall create a log entry, noting the disabled <>s as well as the cause for disabling them." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "AUDIT", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1544, - "localId": "R1544", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1544", - "level": "SHOULD", - "owner": { - "type": "profile", - "id": "sdpi-p" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should use TLS 1.3, or a higher version." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant", - "somds_participant" - ], - "requirementNumber": 1520, - "localId": "R1520", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1520", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> of a RefActor:somds_participant[] shall include all of the following information in the accompanying documentation:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The responsible organization needs to provide a <> with 50 millisecond accuracy." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The responsible organization needs to provide a redundant <> configuration with at least one backup server." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The responsible organization needs to configure the same <> for <>s that execute <>s together." - } - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The 50ms target accuracy is suitable for highly demanding use cases like real time waveform comparison." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INSPECTION" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1521, - "localId": "R1521", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1521", - "level": "SHOULD", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> of a RefActor:somds_participant[] should configure its <> client to prioritize <> to the <>." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefActor:somds_participant[]s could use, for example, <> to satisfy this requirement. That is, employing cold and warm startup and <>s to synchronize the <> with a <> <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "RefActor:somds_participant[]s using other synchronization standards\nshould strongly favour methods such as adjusting clock frequency over large changes (forward\nor backward in time) to maintain an accurate <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1510, - "localId": "R1510", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1510", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not allow manual configuration of its internal clock while the device is operational in an <> network." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Since manual time adjustments of the device's internal clock would lead to plausible, but still inaccurate timestamps, this requirement also prohibits manual adjustments when the <> is not available." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INSPECTION" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1540, - "localId": "R1540", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1540", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "When a <> connects to the <>, it shall not execute <>s until it detects and connects to a <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Without a <>, there is no way for a <> to ensure that its communication partner has a valid certificate." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SECURITY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1530, - "localId": "R1530", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1530", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> is operational and loses connection to the <>, it shall use its internal clock." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "It is likely that a <> needs multiple attempts to connect to a TS service a few times during the day. The system needs to be stable against these kind of short term interruptions." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1531, - "localId": "R1531", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1531", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For every MDS of a <>, the <> shall provide pm:ClockState/@Accuracy." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "AUDIT", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1532, - "localId": "R1532", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1532", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> of a <> shall consider the risk of providing the <>'s <> if the accuracy of the device internal clock decreases due to an unreachable <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"time service unreachable\"]" - } - ] - } - ] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer", - "somds_provider" - ], - "requirementNumber": 1533, - "localId": "R1533", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1533", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> of a <> shall consider the risk of providing the <>'s <> if the accuracy of the <>'s clock decreases." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This goes beyond considering the risk of erroneous timestamps required by the Base <> Standard, since it forces the <> of a <> to define a minimum accuracy acceptable for a <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"provider clock's inaccurate\"]" - } - ] - } - ] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1534, - "localId": "R1534", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1534", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> cannot reach the <>, the <> shall create a log entry." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"log time-service unreachable\"]" - } - ] - } - ] - }, - "mitigating": "AUDIT", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1500, - "localId": "R1500", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1500", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> of a <> shall consider the risk of workflow interruption due to misaligned clocks." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Clocks of <>s run apart due to lack of synchronization with NTP servers, different clock drifts or cyber-attacks." - }, - { - "type": "item", - "strMarker": "*", - "strText": "This requirement supplements RR1162 in <>: _The MANUFACTURER of an SDC BASE CONSUMER SHALL consider the RISKs resulting from erroneous timestamps._" - } - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"workflow interruption risks\"]" - } - ] - } - ] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1560, - "localId": "R1560", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1560", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> shall log each <> of the <> with an entry that includes the determination time of the log entry in both the <> before, and after, each <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This requirement supplements TR1340 in <>— _An SDC BASE PARTICIPANT SHOULD log each <> of the device clock_ — requiring specific information in the log to support post incident analysis." - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"log abrupt time adjustments\"]" - } - ] - } - ] - }, - "mitigating": "AUDIT", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1522, - "localId": "R1522", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1522", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "When the <> detects an <> of a <>, the <> shall either:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "initiate a new MDIB sequence by assigning a new <> sequence identifier, or" - }, - { - "type": "item", - "strMarker": "*", - "strText": "set `pm:ClockState/@ActivationState` to `StndBy` when any timestamp in a <> version was not obtained from the time-reference frame of the active clock in the same version, or" - }, - { - "type": "item", - "strMarker": "*", - "strText": "set `pm:ClockState/@LastSet` to the earliest time that is unambiguously in the current <> and increment `sdpi:Epochs/@Version` and set `pm:ClockState/@ActivationState` to `StndBy` while any timestamp in a <> version is less than `pm:ClockState/@LastSet`." - } - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The <> of the <> considers the risks arising from <>s spanning <>s from an <> having occurred at the <> when the <> receives a changed value in the <>'s MDIB sequence identifier or when the `pm:ClockState/@ActivationState` is `StndBy`." - }, - { - "type": "item", - "strMarker": "*", - "strText": "This clarifies the ambiguity in <>, section B.182 and <>, R0014 when a participant uses slewing to make <> (using, for example, the <> <>) where information from one or more <>s is used to maintain clock-discipline and does not (generally) \"set\" the clock." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Any <> strictly-less than `pm:ClockState/@LastSet` in the MDIB when `pm:ClockState/@ActivationState` is set to `StndBy` may be untrustworthy." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1561, - "localId": "R1561", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1561", - "level": "MAY", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> may indicate a <> belongs to a specific <> using the SDPi epoch extension." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Binding timestamps in the <> to a specific <> may be useful for states that are not updated frequently." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1562, - "localId": "R1562", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1562", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> of a <> shall consider the risks arising from relying on <>s obtained from different <>s." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "It may not be possible to reliably determine the relationship between <> obtained from different <>s without addition information regarding the cause of an <>. Consider, for example, an <> that arises when the <> was running significantly faster (or slower) than the <>. The arithmetic difference in time between two events spanning the adjustment (even when combined with the size of the step adjustment) may not match the elapsed time experienced by an unbiased observer because time passed at different rates in the different epochs." - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"multiple epoch time-stamp risks\"]" - } - ] - } - ] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1566, - "localId": "R1566", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1566", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> of a <> that changes the MDIB sequence identifier when it can no longer make <> to its <> shall consider the risks arising from gaps in continuous data." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "An abrupt time adjustment may indicate a serious error that impacts data that has already been:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "displayed on a chart to the user," - }, - { - "type": "item", - "strMarker": "*", - "strText": "exported to other systems." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1569, - "localId": "R1569", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1569", - "level": "MAY", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> may enter a fault state by, for example, setting the `MdsState/@ActivationState` to `Fail` following an <> that it otherwise cannot recover from." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "A sudden change in a participant's time-reference frame may require intervention by the OPERATOR or RESPONSIBLE ORGANIZATION." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may continue delivery with a subset one or more of its nominal System Function Contribution (<>) following an <> reporting the activation state of components using `AbstractDeviceComponentState/@ActivationState`." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"unrecoverable time adjustment faults\"]" - } - ] - } - ] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer", - "somds_provider" - ], - "requirementNumber": 1600, - "localId": "R1600", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1600", - "level": "MAY", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> may disconnect or go into a fail-safe mode when it determines an <> has occurred in a <> required to continue its <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "A consumer relying on the temporal accuracy of historic data for its <> may require operator input to continue safe operation following an <> to one or more of its data sources." - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"unrecoverable time adjustments\"]" - } - ] - } - ] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer", - "somds_participant" - ], - "requirementNumber": 1601, - "localId": "R1601", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1601", - "level": "SHOULD", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should use the low-precision `Date` field included in HTTP response messages (<>, §6.6.1) to determine if discrepancies between <> clocks exceed requirements for its <>." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This requirement supports a <> considering the risk resulting from erroneous timestamps <>, RR1162." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The maximum discrepancy between participant clocks may depend on the protocol being used to synchronize time (`pm:ClockState/pm:ActiveSyncProtocol`). The time reported by two devices employing <>, for example, may differ by more than 8 1/2 minutes, in a worst case scenario, without triggering an <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> could detect discrepancies exceeding a few seconds, which may affect its <>, using timestamps in HTTP headers, for example." - }, - { - "type": "item", - "strMarker": "*", - "strText": "By monitoring timestamp on message responses (such as subscription renew requests), a <> may be able to take an appropriate action, such as alerting the operator, before using data with suspicious timestamps." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"monitoring provider clock\"]" - } - ] - } - ] - }, - "mitigating": "AUDIT", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1602, - "localId": "R1602", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1602", - "level": "SHOULD", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should use the \"preferred format\", defined in <>, for the `Date` field included in all HTTP response messages." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The `Date` field in HTTP response messages, as the best available approximation of the date and time of message generation, is mandatory for an origin server with a clock (<>, §6.6.1) though several formats are supported. This clarifies obsolete formats shouldn't be be used." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1603, - "localId": "R1603", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1603", - "level": "SHALL", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall notify next users of invalid and/or suspicious timestamps arising from <> that affect its <>." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Operators and downstream systems (e.g., central record keeping systems) may be impacted beyond the <>'s immediate <> by inconsistencies in temporal data." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Notifying next users could include writing an entry in a log accessible to next users." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Notifying next users could visual and/or audible indication to operators through colour, iconography or visual styling on timestamps affected by the <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1604, - "localId": "R1604", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1604", - "level": "SHOULD", - "owner": { - "type": "use-case", - "id": "stad" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <>, adjusting invalid and/or suspicious timestamps arising from <>, should continue to treat the adjusted timestamp as invalid and/or suspicious." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "A <> may use information provided, for example, by the <> using, for example, the <> extension to improve the accuracy of a suspicious timestamp. However timestamps may remain less accurate than had the <> not occurred and it may still be appropriate to notify next users of this." - ] - } - ], - "exampleContent": [], - "relatedContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "RefRequirement:RR1162[standard-id=10700, comment=\"propagate time faults\"]" - } - ] - } - ] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 503, - "localId": "R0503", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.503", - "level": "SHALL", - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall respond to a {var_label_dev_33_message_getlocalizedtext} message with a set of localized texts in <> resulting from the intersection of filtered localized texts sets as selected by <>, <>, <>, <>, and <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The filtering of localized texts sets is specified by <>, <>, <>, <>, and <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 504, - "localId": "R0504", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.504", - "level": "SHALL", - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall select a set of localized texts based on <> as follows:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "-", - "strText": "For each <> that corresponds to a localized text, the localized text is added to the set or" - }, - { - "type": "item", - "strMarker": "-", - "strText": "If no <> is given, the set contains all localized texts" - } - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 505, - "localId": "R0505", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.505", - "level": "SHALL", - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall select a set of localized texts based on <> as follows:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "-", - "strText": "If <> is specified and localized texts are available in that specified version, then the corresponding localized texts are added to the set or" - }, - { - "type": "item", - "strMarker": "-", - "strText": "If <> is specified and no localized texts are available in that specified version, then no localized texts are added to the set or" - }, - { - "type": "item", - "strMarker": "-", - "strText": "If <> is not specified, then the latest version of localized texts are added to the set" - } - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 506, - "localId": "R0506", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.506", - "level": "SHALL", - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall select a set of localized texts based on <> as follows:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "-", - "strText": "For each <> for which a localized text exists, the localized text is added to the set or" - }, - { - "type": "item", - "strMarker": "-", - "strText": "If no <> is given, the set contains all localized texts" - } - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 507, - "localId": "R0507", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.507", - "level": "SHALL", - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall select a set of localized texts based on <> as follows:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "-", - "strText": "The <> adds all localized texts to the set for which the text width of the localized text is less or equal to the widest <> element or" - }, - { - "type": "item", - "strMarker": "-", - "strText": "If no <> is given, the set contains all localized texts" - } - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 508, - "localId": "R0508", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.508", - "level": "SHALL", - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall select a set of localized texts based on <> as follows:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "-", - "strText": "The <> adds all localized texts to the set for which the number of lines of the localized text is less or equal to the maximum in <>" - }, - { - "type": "item", - "strMarker": "-", - "strText": "If no <> is given, the set contains all localized texts" - } - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 500, - "localId": "R0500", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.500", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall at least provide the port types as specified in <>." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "According to <>, the GET SERVICE is the only mandatory service to be implemented. This specification extends the list of mandatory services to increase interoperability between <>s." - }, - { - "type": "item", - "strMarker": "*", - "strText": "All port types of SDC are {uri_sdc_wsdl}[available for download]." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 501, - "localId": "R0501", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.501", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should not request context states by using the `GetContextStatesByIdentification` and `GetContextStatesByFilter` operations of the ++{++{uri_sdc_port_type}++}++ContextService port type." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "`GetContextStatesByIdentification` and `GetContextStatesByFilter` are insufficiently defined in <> and are likely to be obsoleted in a future revision of the specification." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may retrieve context states by using `GetContextStates` and perform filtering by itself." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 509, - "localId": "R0509", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.509", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> provides localized text references in its <>,", - "the <> shall provide the LOCALIZATION SERVICE via port type", - "++{++{uri_sdc_port_type}++}++LocalizationService." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The ++{++{uri_sdc_port_type}++}++LocalizationService port type is {uri_sdc_wsdl}[available for download]." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 2000, - "localId": "R2000", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.2000", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should use a dynamically configured IP address." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 2001, - "localId": "R2001", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.2001", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall periodically send Hello messages at random intervals between 60 seconds and 120 seconds." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The random interval between 60 seconds and 120 seconds aims to prevent <>s from congesting the network by sending recurring Hello messages at the same time." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 2002, - "localId": "R2002", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.2002", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should implement the retry and back-off algorithm defined in SOAP-over-UDP, Appendix A." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 3001, - "localId": "R3001", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.3001", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should not periodically send Probe messages." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "If Probe messages are sent periodically, a rationale needs to be provided, since <>s send Hello messages periodically." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 3002, - "localId": "R3002", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.3002", - "level": "MAY", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> may re-send Probe messages if demanded by a dedicated user interaction." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "A dedicated user interaction can be a button press on a <>'s display or any other manual activation." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 7000, - "localId": "R7000", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7000", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall implement the scope matching rule `{var_uri_matching_rule}` as specified by <> in a way that the use of _prefix_ refers to the definition of a prefix in formal theory." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This requirement erases disambiguation since there are multiple definitions of the term _prefix_." - }, - { - "type": "item", - "strMarker": "*", - "strText": "From this it follows that a prefix can be empty as otherwise the term _proper prefix_ would have to be used." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer", - "somds_provider" - ], - "requirementNumber": 7001, - "localId": "R7001", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7001", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "When a <> requests `{var_filter_dialect_action}` filter processing in a Subscribe message, the <> shall assume the receiving <> to perform the `{var_uri_strcmp0}` matching rule." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The `{var_uri_rfc3986}` matching rule definition implemented by <>s ambiguously includes the term `prefix`.", - "As `{var_uri_rfc3986}` subsumes `{var_uri_strcmp0}`, a fallback to case-sensitive string comparison is explicit and failsafe." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 7003, - "localId": "R7003", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7003", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall leverage HTTP path dispatching to identify subscription managers and notification/end-to sinks." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "WS-Eventing allows for an event source or sink to make use of WS-Addressing endpoint reference parameters in order to identify endpoints, which is discouraged because of additional unnecessary complexity in processing complex XML elements." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 7004, - "localId": "R7004", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7004", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "In a SubscribeResponse message, a <> shall provide an _Expires_ element." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The WS-Eventing specification that is normatively included in <> explains the absence of _Expires_ in a SubscribeResponse message (see <>, Section 3.1), which is actually prohibited according to the XML Schema. This specification underlines the need to provide an _Expires_ element in SubscribeResponse messages." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 7005, - "localId": "R7005", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7005", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "In a RenewResponse message, a <> shall provide an _Expires_ element." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The WS-Eventing specification that is normatively included in <> does not explain the absence of _Expires_ in a RenewResponse message (see <>, Section 3.2). This specification prohibits the absence of _Expires_ in RenewResponse messages to avoid subscriptions that run infinitely." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 7002, - "localId": "R7002", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7002", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall enclose all context states in pm:GetMdibResponse messages." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This requirement restricts optionality in including context states in GetMdibResponse messages as specified in <>, C.57 GetMdibResponse:" - ] - }, - { - "type": "block", - "lines": [] - }, - { - "type": "block", - "lines": [ - "Since transmission of GetMdibResponse messages is required to be secured, there is no need for omitting context states to meet confidentiality; R0121 in <> is still met." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "discovery_proxy", - "somds_provider", - "somds_consumer" - ], - "requirementNumber": 7006, - "localId": "R7006", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7006", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> sends {var_label_dev_46_message_directed_probe} messages to verify presence of <>s, the <> shall notify all <>s subscribed to Bye messages about the <>'s absence." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Absence of <>s is notified to <>s by using the Bye message as specified in <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "discovery_proxy" - ], - "requirementNumber": 7007, - "localId": "R7007", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7007", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall provide the Discovery Proxy service by implementing the port type", - "with the <> dp:DiscoveryProxy." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The <> port type is defined in <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The OID used for the target namespace of the <> WSDL file is listed in <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "discovery_proxy" - ], - "requirementNumber": 7008, - "localId": "R7008", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7008", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall accept the WS-Eventing wse:Filter@Dialect", - "urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.2.1." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The OID used for the filter dialect is listed in <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer", - "discovery_proxy" - ], - "requirementNumber": 7009, - "localId": "R7009", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7009", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall add the filter dialect `urn:oid:1.3.6.1.4.1.19376.1.6.2.10.1.2.1` to", - "every Subscribe request to a <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The OID used for the filter dialect is listed in <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 502, - "localId": "R0502", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.502", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall use HTTPS with mutual authentication for those transactions that are required to be secured." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Each section that specifies a transaction indicates security requirements in the __Security Requirements & Considerations__ subsection beneath the __Safety, Effectiveness and Security - Requirements and Considerations__ of each transaction." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Essentially, this specification asks for secured transmission of data except when ad-hoc discovery is performed." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SECURITY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1, - "localId": "R0001", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1", - "level": "MAY", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> may delay sending a Resolve Match response to a Resolve message." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "It is up to the <> of the <> to choose a delay that fits the hardware capabilities of the <> for concurrent connection requests." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 2, - "localId": "R0002", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.2", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should be configurable with a priority group number in accordance with <> R0076." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "As it is not trivial to determine the priority of a <> in all and every circumstance, the <> can provide configurable options that allow for flexible adaptation on environmental changes." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 3, - "localId": "R0003", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.3", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> does not intend to enforce configuration of priority groups during installation of its <>, the manufacturer shall pre-configure priority groups to a reasonable default value that reflects the highest criticality of the <>'s system function." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This does not necessarily prevent the user from changing the priority group after the installation process is finished." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Guidelines for reasonable default values are shown in <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 4, - "localId": "R0004", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.4", - "level": "MAY", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> does not intend to allow for a user to configure a priority group after the installation process of its <> is finished, the manufacturer may dynamically determine a reasonable priority group for its <> according to the highest criticality of the <>'s system function on startup." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "In order to dynamically determine the priority group within a certain range, a <> can use, for example, a random number generator function or a real-time clock." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Guidelines for reasonable priority group ranges are shown in <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider", - "somds_consumer" - ], - "requirementNumber": 1001, - "localId": "R1001", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1001", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall only establish one TCP connection at a time for every subscribed <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1002, - "localId": "R1002", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1002", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall utilize TCP to exchange messages with other <>s except for messages exchanged in the WS-Discovery Ad-hoc mode." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The WS-Discovery Ad-hoc mode utilizes UDP to exchange messages, see <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1003, - "localId": "R1003", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1003", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall only utilize HTTP 1.1 without HTTP pipelining for any HTTP traffic." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Enforces use of HTTP 1.1 in order to limit choices by which a re-ordering of message delivery can be implemented." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1004, - "localId": "R1004", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1004", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall transmit msg:WaveformStream, msg:AbstractMetricReport, msg:AbstractOperationalStateReport, msg:AbstractComponentReport, msg:AbstractAlertReport, msg:ObservedValueStream, msg:DescriptionModificationReport, and msg:AbstractContextReport messages sequentially." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This allows for a <> to apply report data on internal <> data structures before receiving the next report without buffering." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1030, - "localId": "R1030", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1030", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should include an `sdpi:ReportSequence` element in every message notification header." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The `sdpi:ReportSequence` element supports detection of lost reports by a <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The <> extension defines the `sdpi:ReportSequence` element." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1031, - "localId": "R1031", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1031", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should reconnect or go into a fail-safe mode when it receives a message notification in a single publish-subscribe session with a `sdpi:ReportSequence/@MessageNumber` that is either:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "not 1 for the first message received in a new session, or" - }, - { - "type": "item", - "strMarker": "*", - "strText": "lower than the last `sdpi:ReportSequence/@MessageNumber` number received in an on-going session, or" - }, - { - "type": "item", - "strMarker": "*", - "strText": "more than 1 greater than the last `sdpi:ReportSequence/@MessageNumber` number received in an on-going session." - } - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "A publish-subscribe session is established between a <> and <> using Transaction [DEV-27] (<>)." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Renewing an established publish-subscribe session does not establish a new session and does not cause `sdpi:ReportSequence/@MessageNumber` to restart from 1." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1032, - "localId": "R1032", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1032", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should treat subsequent reports with the same `sdpi:ReportSequence/@MessageNumber` as functionally identical following confirmation of successful delivery." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Successful delivery on an HTTP transport means the <> replies to the notification message with a success code (200 – 299)." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may receive multiple reports with the same `sdpi:ReportSequence/@MessageNumber` when the <> does not receive confirmation of successful delivery from the <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> is not required to process the content of multiple reports with the same `sdpi:ReportSequence/@MessageNumber`." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> will not increment the `sdpi:ReportSequence/@MessageNumber` until it receives confirmation of successful delivery from the <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> that receives a fault response from a <> may change or delay the message to address the fault." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1033, - "localId": "R1033", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1033", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> that receives multiple reports with the same `sdpi:ReportSequence/@MessageNumber` should either:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "acknowledge receipt with an HTTP response code, or" - }, - { - "type": "item", - "strMarker": "*", - "strText": "terminate the publish-subscribe session using the mechanisms described in Transaction [DEV-27] (<>)." - } - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "A <> may send multiple message notifications with the same `sdpi:ReportSequence/@MessageNumber` when it receives a fault code from the <> (e.g., the consumer is busy processing other messages) or no response (time-out following a network interruption)." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may receive more than one message notifications with the same `sdpi:ReportSequence/@MessageNumber` when it responds with a fault code. The message notifications may not be the same (e.g., the <> alters the message to address the fault)." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1014, - "localId": "R1014", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1014", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not send a notification of a subscription as long as there is another notification pending for that subscription." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This also requires <>s to serialize delivery of msg:OperationInvokedReport messages." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 5, - "localId": "R0005", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.5", - "level": "SHOULD", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "In its role as an HTTP client, a <> should request gzip compression by using Accept-Encoding with \"gzip\"." - ] - } - ], - "noteContent": [], - "exampleContent": [ - { - "type": "listing", - "title": "HTTP request header to request compression", - "lines": [ - "GET /path/to/resource HTTP/1.1", - "Host: www.example.com", - "Accept-Encoding: gzip" - ] - }, - { - "type": "block", - "lines": [ - "The client indicates gzip compression to be an accepted response encoding. Note that the server is nevertheless free to send the response without compression." - ] - }, - { - "type": "listing", - "title": "HTTP response header indicating compressed content", - "lines": [ - "HTTP/1.1 200 OK", - "Date: sun, 26 June 2016 22:38:34 GMT", - "Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)", - "Last-Modified: Wed, 08 Jan 2020 23:11:55 GMT", - "Accept-Ranges: bytes", - "Content-Length: 438", - "Connection: close", - "Content-Type: text/xml; charset=UTF-8", - "Content-Encoding: gzip" - ] - }, - { - "type": "block", - "lines": [ - "The HTTP server decided to encode the response with the gzip compression. Note that servers are not required to actually compress (e.g., due to load conditions or unknown algorithms they are entitled to answer with identity encoding)." - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer", - "somds_provider" - ], - "requirementNumber": 6, - "localId": "R0006", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.6", - "level": "MAY", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> includes an Accept-Encoding header field in an HTTP header in a WS-Eventing Subscribe request, the <> may transmit Notifications related to that subscription encoded with the encoding that was defined in the Subscribe request." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 10, - "localId": "R0010", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.10", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> of a <> intends to include MDS production specifications in the WS-Discovery Scopes of the <>, the <> shall encode the production specifications by using the rules in <>." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The URI encoding of production specifications is defined in <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "<>s can also encode metadata information as production specification, according to the mapping in <>." - } - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "URIs of a <> name and serial number:" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "-", - "strText": "`sdc.mds.prodspec:MediHealth:531970`" - }, - { - "type": "item", - "strMarker": "-", - "strText": "`sdc.mds.prodspec:DE12345678:531972,urn%3Aoid%3A1.3.111.2.11073.10101.3`" - } - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 11, - "localId": "R0011", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.11", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a <> of a <> intends to include MDS attributes in the WS-Discovery Scopes of the <>, the <> shall encode the attributes by using the rules in <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The URI encoding of attributes is defined by the Extended Backus-Naur Form <> in <>." - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "URI of a Soft ID named _PatMon 03_: `sdc.mds.attr:PatMon%2003:67886`" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_participant" - ], - "requirementNumber": 13, - "localId": "R0013", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.13", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall serialize XML instance documents in accordance to its applicable XML Schema definitions." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This requirement stems from the need to avoid pretty-print output if an XML serializer does not understand or know the underlying XML Schema definitions." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1012, - "localId": "R1012", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1012", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall resolve the namespace of a prefixed <> in XML attribute values and content of elements to the namespace that is associated with its prefix and is valid for the smallest element, which encloses the <>, by XML content." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 1013, - "localId": "R1013", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1013", - "level": "SHALL", - "owner": { - "type": "protocol", - "id": "mdpws" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall resolve the namespace of an unprefixed <> in XML attribute values and content of elements to the default namespace that is valid for the smallest element, which encloses the <>, by XML content." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 8119, - "localId": "R8119", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8119", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each private code a <> shall provide exactly one *pm:Translation* where *pm:Translation/@Code* is identical with *pm:CodedValue/@Code*." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Multiple translations are allowed, but exactly one translation is specified for a private code." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8100, - "localId": "R8100", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8100", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If not differently specified in this section, the MSH segment fields shall be in compliance with the [PCD-01] or [PCD-04] transaction, retrospectively, as described in the <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8101, - "localId": "R8101", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8101", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each <> element in the <>, a separate [PCD-01] message shall be exported." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The HL7 segments *MSH*, *PID*, and *PV1* contain information which can differ between multiple <> devices represented as <> elements in the <> (e. g. operating mode, patient demographics, patient location, etc.). Since these segments are commonly defined for all <> elements in the HL7 [PCD-01] message, separate HL7 [PCD-01] messages per <> are required to be exported." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8118, - "localId": "R8118", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8118", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> / <> shall set the MSH-11 field to the code for the processing ID, which is either be *\"P\"* (Production) or *\"D\"* (Debugging)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC MDS information to the data fields of the HL7 data type *PT* used in the MSH-11 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8102, - "localId": "R8102", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8102", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The SDC patient context information shall only be mapped to the corresponding fields in the HL7 PID segment when the requirements for a valid SDC patient context as defined in <> are fulfilled." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "For a valid *pm:PatientContextState*, the *pm:AbstractContextState/@ContextAssociation* attribute is set to *\"Assoc\"* and the *pm:AbstractContextState/pm:Validator* is set to a valid validator. A corresponding inferred patient ensemble context is not required for the <> / <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If the SDC patient context information is not intended to be used for the mapping, please refer to the <> on how to populate the fields of the PID segment in this case." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8103, - "localId": "R8103", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8103", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall map the patient identifiers to the PID-3 field." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The PID-3 is a list of patient identifiers (e.g., medical record number, social security number, visit number, account number, etc.)" - }, - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the <> patient identification to the data fields of the HL7 data type *CX* used in the PID-3 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If the <> patient identification element *pm:PatientContextState/pm:Identification* contains more than one patient identifier, each SDC patient identifier is mapped according to the <> table and added to the PID-3 patient identifier list." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8104, - "localId": "R8104", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8104", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PID-5 field to the patient name information." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC patient name information to the data fields of the HL7 data type *XPN* used in the PID-5 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8105, - "localId": "R8105", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8105", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PID-6 field to the mother's maiden name or birth name before marriage." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC patient name information to the data fields of the HL7 data type *XPN* used in the PID-6 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8106, - "localId": "R8106", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8106", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PID-7 field to the date and time of birth." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC patient's date of birth information to the data fields of the HL7 data type *DTM* used in the PID-7 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8120, - "localId": "R8120", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8120", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall export the patient's sex as OBX segment on the MDS level." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The mapping for the patient's sex is defined in table <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8121, - "localId": "R8121", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8121", - "level": "MAY", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met and the patient's sex in the <> is sourced from the PID-8 field in HL7 V2 ADT messages provided by the hospital ADT system, then a <> / <> may set the PID-8 field to the code for the administrative sex." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC patient's sex information to the data fields of the HL7 data type *IS* used in the PID-8 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_v2_gateway", - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8107, - "localId": "R8107", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8107", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met and the <> provides the Healthcare Delivery Organization (HDO) the possibility to configure the export of the patient's sex set in the <> in the PID-8 field, then a <> / <> shall set the PID-8 field to the code for the administrative sex." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC patient's sex information to the data fields of the HL7 data type *IS* used in the PID-8 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_v2_gateway" - ], - "requirementNumber": 8122, - "localId": "R8122", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8122", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If the <> provides the Healthcare Delivery Organization (HDO) the possibility to configure the export of the patient's sex in the PID-8 field, the manufacturer of the <> shall require in the ACCOMPANYING INFORMATION that the HDO has to consider the risk that the patient's sex set in the <> and mapped to the PID-8 field does not lead to a misinterpretation of the sex concept on <> consumer side." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8108, - "localId": "R8108", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8108", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PID-10 field to the patient's race." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC patient's race information to the data fields of the HL7 data type *CWE* used in the PID-10 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8109, - "localId": "R8109", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8109", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PID-31 field to an indicator whether the patient's identity is known." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "For a valid *pm:PatientContextState*, the *pm:AbstractContextState/@ContextAssociation* attribute is set to *\"Assoc\"* and the *pm:AbstractContextState/pm:Validator* is set to a valid validator. In this case, the value is set to \"N\"." - }, - { - "type": "item", - "strMarker": "*", - "strText": "In all other cases, the value is set to \"Y\"." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A corresponding inferred patient ensemble context is not required for the <> / <> in order to determine a valid *pm:PatientContextState*." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8111, - "localId": "R8111", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8111", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The SDC patient and location context information shall only be mapped to the corresponding fields in the HL7 PV1 segment when the requirements for a valid SDC patient and location context as defined in the <> are fulfilled." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "For a valid *pm:PatientContextState* or *pm:LocationContextSate*, the *pm:AbstractContextState/@ContextAssociation* attribute is set to *\"Assoc\"* and the *pm:AbstractContextState/pm:Validator* is set to a valid validator. A corresponding inferred patient or location ensemble context is not required for the <> / <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If the SDC patient and/or location context information is not be used for the mapping, please refer to the <> on how to populate the fields of the PV1 segment in this case." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8112, - "localId": "R8112", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8112", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> / <> shall set the PV1-2 field to the code for the patient class." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The *HL7 table 0004 - Patient Class* defines a set of recommended codes to be used for the data fields of the HL7 data type *IS* used in the PV1-2 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8113, - "localId": "R8113", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8113", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PV1-3 field to the patient's assigned location." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC patient location information to the data fields of the HL7 data type *PL* used in the PV1-3 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8114, - "localId": "R8114", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8114", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PV1-19 field to the patient's visit identifier." - ] - }, - { - "type": "block", - "lines": [ - "If the SDC patient identifier element *pm:PatientContextState/pm:Identification* contains more than one patient identifier, only the unique identifier assigned to the patient's visit is mapped according to the <> table." - ] - }, - { - "type": "block", - "lines": [ - "When there is no unique visit identifier assigned to the patient's visit, the field is left empty." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the SDC patient identifier to the data fields of the HL7 data type *CX* used in the PV1-19 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A visit identifier could be a visit number, an account number, or any other identifier that relates to the patient's visit." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8115, - "localId": "R8115", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8115", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PV1-44 field to the patient's admission date/time." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The SDC data model does not support the concept of an admission date/time. There are also different types of admissions; e.g., hospital admission, care unit admission, etc." - ] - }, - { - "type": "block", - "lines": [ - "This said, it is up to the <> / <> to figure out the admission date/time to be set in the PV1-44 field. If the gateway is not able to determine the admission date/time, the field is left empty." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8116, - "localId": "R8116", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8116", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If <> is met, then a <> / <> shall set the PV1-51 field to the code for the visit indicator." - ] - }, - { - "type": "block", - "lines": [ - "If *\"pm:PatientContextState/pm:Identification/pm:Type/@Code\"* is \"VN\" (Visit Number), the field is set to *\"V\"*." - ] - }, - { - "type": "block", - "lines": [ - "Otherwise, the field is left empty by default." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The HL7 table 0326 - Visit Indicator defines a set of recommended codes to be used for the data fields of the HL7 data type IS used in the PV1-51 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8012, - "localId": "R8012", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8012", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> / <> shall set the OBX-3 field to the identifier of the element in the hierarchical containment tree such as MDS, VMD, CHAN, or the actual related metric to be exported." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<>, <>, <> and <> define the mapping of the SDC containment tree element to the data fields of the HL7 data type *CWE* used in the OBX-3 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8013, - "localId": "R8013", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8013", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of the SDC containment tree element, the <> / <> shall map an identifier of the element in the hierarchical containment tree such as MDS, VMD, CHAN, or the actual related metric as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8014, - "localId": "R8014", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8014", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> / <> shall set the OBX-4 field to a hierarchical representation of the SDC element in the hierarchical containment tree." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Please refer to the IHE technical framework <> for further information." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8015, - "localId": "R8015", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8015", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> / <> shall assign the handles (which are required to be unique in the same <>) of the containment tree elements representing MDSs, VMDs, channels and metrics to unique integer numbers per child level of the same parent." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This implies that, e.g., channel elements may use the same numbers as VMD elements but on the channel level the numbers must be unique for the channels related to the same VMD." - ] - }, - { - "type": "block", - "lines": [ - "There is no requirement to preserve the same assigned number for a containment tree element from message to message, but it is highly recommended since this makes it much easier for the DOC to process the HL7 V2 messages." - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "Example for Containment Tree Element Handle Assignment:" - ] - }, - { - "type": "block", - "lines": [ - "The gateway assigns the handles of the containment tree elements to" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "`3` for pm:MdsDescriptor/@Handle = \"My1Mds\"," - }, - { - "type": "item", - "strMarker": "*", - "strText": "`1` for pm:VmdDescriptor/@Handle = \"Vmd.1\"," - }, - { - "type": "item", - "strMarker": "*", - "strText": "`2` for pm:ChannelDescriptor/@Handle = \"Chan.4 and" - }, - { - "type": "item", - "strMarker": "*", - "strText": "`1` for pm:AbstractMetricDescriptor/@Handle = \"Metric.Spo2\"." - } - ] - }, - { - "type": "block", - "lines": [ - "The OBX-4 field for the containment tree elements is set to" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "`3.0.0.0` for the MDS OBX segment," - }, - { - "type": "item", - "strMarker": "*", - "strText": "`3.1.0.0` for the VMD OBX segment," - }, - { - "type": "item", - "strMarker": "*", - "strText": "`3.1.2.0` for the CHAN OBX segment and" - }, - { - "type": "item", - "strMarker": "*", - "strText": "`3.1.2.1` for the Metric OBX segment." - } - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_acm_gateway" - ], - "requirementNumber": 8117, - "localId": "R8117", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8117", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "hl7v2" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> / <> shall set the OBX-18 field to the equipment (or device) identifier on the MDS level and/or the measurement module identifier of the equipment on the VMD level as defined in section <>." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the <> MDS meta data to the data fields of the HL7 data type *EI* used in the OBX-18 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the <> VMD information to the data fields of the HL7 data type *EI* used in the OBX-18 field." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8001, - "localId": "R8001", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8001", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If available, the <> shall export height and weight as OBX segments on the MDS level." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The mapping for the height observation is defined in table <> and the weight mapping in table <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8002, - "localId": "R8002", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8002", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall use the *pm:PatientContextState/@BindingStartTime* as the timestamp for the height and weight observation and send new values as corrected results." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8003, - "localId": "R8003", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8003", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the IHE DEC profile, the <> shall set the OBR-2 field to the identifier of the Device Observation Reporter (DOR) of the IHE DEC gateway (not the individual device identifier)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "For further information, please refer to the <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8004, - "localId": "R8004", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8004", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the IHE DEC profile, the <> shall set the OBR-3 field to the identifier of the Device Observation Reporter (DOR) of the IHE DEC gateway (not the individual device identifier)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "For further information, please refer to the <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_provider" - ], - "requirementNumber": 8005, - "localId": "R8005", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8005", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the IHE DEC profile, the <> shall set the OBR-4 field to the service identifier of the <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "For further information, please refer to the <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8037, - "localId": "R8037", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8037", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export continuously (periodically) measured metrics periodically at a defined interval." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "It is up to the <> how the export interval is defined. The interval might be a fixed interval of e.g., 30 seconds, or a configurable interval ranging e.g., between 10 seconds and 2 minutes." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8038, - "localId": "R8038", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8038", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBR-7 field to the start date and time of current export interval." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "If, for example, the export interval is set to 30 seconds, the <> will export HL7 messages every 30 seconds with the OBR-7 field set to start date and time of the interval e.g., *20231030155930*, *20231030160000*, *20231030160030*, and so on." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8006, - "localId": "R8006", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8006", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export the latest metric value of all continuously (periodically) measured metrics with a *pm:AbstractMetricState++++++/pm:MetricValue++++++/@DeterminationTime* which is equal or greater than the start date and time of the current interval, and less than the start date and time of the next export interval." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The OBR-7 field is set to the start time of the interval. The individual periodic metric value *@DeterminationTime* is basically ignored, but has to be within the time boundaries of the current export interval." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8007, - "localId": "R8007", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8007", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For exporting episodic metric values and the absence of any continuously measured metric values for the current export interval, a <> shall set the OBR-7 field to the start date and time of current export interval." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Episodic metric values are usually exported along with the periodic metric values in the same export intervals. However, if a device does not provide periodic metric values in the current export interval, episodic metric values are exported in current export interval without periodic metric values." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The *pm:AbstractMetricState++++++/pm:MetricValue++++++/@DeterminationTime* of an episodic metric value is set in the OBX-14 field and will override the timestamp defined in the OBR-7 field." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8008, - "localId": "R8008", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8008", - "level": "MAY", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> may set the OBR-8 field to the end date and time of the current export interval." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This requirement relates to the OBR-7 field mapping. Please refer to <> for further information." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If, for example, the export interval is set to 30 seconds, the <> will export HL7 messages every 30 seconds with the OBR-7 field set to start date and time of the current interval and the OBR-8 field set to the start date and time of the next interval e.g., *20231030155930*|*20231030160000*, *20231030160000*|*20231030160030*, and so on." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8009, - "localId": "R8009", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8009", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBR-10 field to the operator (user) information if available." - ] - }, - { - "type": "block", - "lines": [ - "The field is left empty if there is no valid SDC operator context." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the SDC operator context information to the data fields of the HL7 data type *XCN* used in the OBR-10 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The SDC operator context is only valid when the *pm:OperatorContextState/@ContextAssociation* is set to *\"Assoc\"* and a *pm:OperatorContextState/@BindingStartTime* is set." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8010, - "localId": "R8010", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8010", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBX-2 field to the metric value type code as defined in *HL7 table 0125*." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "<> defines the mapping of the SDC metric type to the data fields of the HL7 data type *ID* used in the OBX-2 field." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway", - "somds_provider" - ], - "requirementNumber": 8011, - "localId": "R8011", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8011", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall leave the OBX-2 field empty for OBX segments defining the <>'s MDS, VMD, or CHAN containment tree elements." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8016, - "localId": "R8016", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8016", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBX-5 field to the value of the SDC metric." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The formatting of the data depends on the data type." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8036, - "localId": "R8036", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8036", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For a device-related element such as MDS, VMD, or channel, the OBX-5 field shall be left empty." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8017, - "localId": "R8017", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8017", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall only export metrics with a *pm:AbstractMetricValue/pm:MetricQuality/@Validity* set to *Vld* (Valid) or *Vldated* (Validated Data)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Metrics with a different *@Validity* are skipped/ignored." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8018, - "localId": "R8018", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8018", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall only export metrics with the *pm:AbstractMetricDescriptor/@MetricCategory* set to *Msrmt* (Measurement), *Clc* (Calculation) or *Set* (Setting)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Metrics with a different *@MetricCategory* are skipped/ignored." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8019, - "localId": "R8019", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8019", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each numeric metric that complies with <> and <>, a <> shall set the OBX-5 field to the *pm:NumericMetricState/pm:MetricValue/@Value*." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Note that the decimal number needs to be formatted according to the HL7 numeric value formatting rules." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Note that sample array metrics are not supported by the <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8020, - "localId": "R8020", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8020", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each string metric that complies with R8017 and R8018, a <> shall set the OBX-5 field to the *pm:StringMetricState/pm:MetricValue/@Value*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8021, - "localId": "R8021", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8021", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each enumeration string metric that complies with R8017 and R8018, a <> shall set the OBX-5 field to a coded element value." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the SDC coded element value to the data fields of the HL7 data type *CWE* used in the OBX-5 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The *pm:EnumStringMetricState++++++/pm:MetricValue++++++/@Value* contains the string of the selected enumerated element.\nThe actual coded element value can be retrieved from the *pm:EnumStringMetricDescriptor++++++/pm:AllowedValue* list by comparing the *pm:EnumStringMetricState++++++/pm:MetricValue++++++/@Value* with the *pm:EnumStringMetricDescriptor++++++/pm:AllowedValue++++++/pm:Value*." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If a match has been found, the *pm:EnumStringMetricDescriptor++++++/pm:AllowedValue++++++/pm:Type* is required to be mapped as defined in <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If no matching value has been found, the enumeration is treated as a string metric and the *pm:EnumStringMetricState++++++/pm:MetricValue++++++/@Value* is required to be set in the OBX-5 field, and\nthe OBX-2 is required to be set to *\"ST\"* (see also <> and <>)." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8022, - "localId": "R8022", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8022", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of the SDC coded element value in OBX-5 mapping, a <> shall map the identifier as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8023, - "localId": "R8023", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8023", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each numeric metric, a <> shall set the OBX-6 field to a measurement unit." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the SDC measurement unit to the data fields of the HL7 data type *CWE* used in the OBX-6 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "For a device-related element such as MDS, VMD, CHANNEL, or other metric types, the OBX-6 field is left empty." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8024, - "localId": "R8024", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8024", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of the SDC measurement unit of a metric, a <> shall map the identifier as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8026, - "localId": "R8026", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8026", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall define the range of the alert limits on the metric level, if the *@Handle* of the metric is referenced by a *pm:LimitAlertConditionDescriptor* in the *pm:LimitAlertConditionDescriptor/pm:Source* list, by the format ` - ` where" - ] - }, - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "`` is set to *pm:LimitAlertConditionState/pm:Limits/@Lower* and" - }, - { - "type": "item", - "strMarker": "*", - "strText": "`` is set to *pm:LimitAlertConditionState/pm:Limits/@Upper*." - } - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Note that the decimal number needs to be formatted according to the HL7 numeric value formatting rules." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8025, - "localId": "R8025", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8025", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not set this field to the device measurement range capability for device related segments." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "As stated in <> the reference range can only be set for device related segments (e.g., Channel). Within SDC the device measurement range refers to each metric and cannot be populated on higher levels in the containment tree." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8027, - "localId": "R8027", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8027", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall leave the OBX-8 field empty as specified in the <> for valid and validated metric values." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8028, - "localId": "R8028", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8028", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For a device-related element such as MDS, VMD, or CHANNEL, a <> shall set the OBX-11 field to *\"X\"*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8029, - "localId": "R8029", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8029", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For metrics with the *pm:AbstractMetricValue/pm:MetricQuality/@Validity* set to *Vld* (Valid), a <> shall set the OBX-11 field to *\"R\"*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8030, - "localId": "R8030", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8030", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For metrics with the *pm:AbstractMetricValue/pm:MetricQuality/@Validity* set to *Vldated* (Validated Data), a <> shall set the OBX-11 field to *\"F\"*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8031, - "localId": "R8031", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8031", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBX-14 field to the date and time of the intermittently measured metric value." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Intermittently measured metrics have the *pm:AbstractMetricDescriptor/@MetricAvailability* set to \"*Intr*\"." - }, - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the SDC metric measurement timestamp to the data fields of the HL7 data type *DTM* used in the OBX-14 field." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8032, - "localId": "R8032", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8032", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If available, a <> shall set the OBX-16 field to the operator." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Please refer to <> for further information." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The <> requires only the map the \"ID Number\", and optionally the \"Family Name\" and \"Given Name\" in this field, whereas the OBR-10 field may contain additional information about the operator." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8033, - "localId": "R8033", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8033", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBX-17 field to one of the coded terms as specified in <>, depending on the *pm:AbstractMetricDescriptor/@MetricCategory* (Category) and the *pm:AbstractMetricDescriptor/@DerivationMethod* (Derivation)." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8039, - "localId": "R8039", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8039", - "level": "SHOULD", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should repeat the OBX-17 field to express the *pm:AbstractMetricDescriptor/@MetricAvailability* as specified in <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8034, - "localId": "R8034", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8034", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If available for the metric, a <> shall set the OBX-20 field to body site." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "If the *pm:AbstractMetricState/pm:BodySite* element and the *pm:AbstractMetricDescriptor/pm:BodySite* element are available, the body site defined in the *pm:AbstractMetricState* is the preferred *pm:BodySite* element to be mapped." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If *pm:BodySite* element list contains more than one *pm:BodySite* element, only the first entry of the list is used for the mapping." - }, - { - "type": "item", - "strMarker": "*", - "strText": "<> defines the mapping of the SDC body site element to the data fields of the HL7 data type *CWE* used in the OBX-20 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "For a device-related element such as MDS, VMD, or CHANNEL, the OBX-20 field is left empty." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_dec_gateway" - ], - "requirementNumber": 8035, - "localId": "R8035", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8035", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "dec" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of a body site, a <> shall map the identifier as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8050, - "localId": "R8050", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8050", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the IHE ACM profile, the <> shall set the OBR-2 field to the identifier of the Alarm Reporter (AR) of the IHE ACM gateway (not the individual device identifier)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "For further information, please refer to the <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8051, - "localId": "R8051", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8051", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBR-3 field to a unique identifier for the status to the alert indication." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "For further information, please refer to the <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8052, - "localId": "R8052", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8052", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the *initial alert event announcement message*, a <> shall set the OBR-3/EI-1 field to the unique identifier for the alert event." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This identifier consists of the *pm:AlertConditionState/@DescriptorHandle* plus the *SequenceId* plus the *pm:AlertConditionState/@StateVersion* of the state report." - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "Unique Alert Event Identifier:" - ] - }, - { - "type": "block", - "lines": [ - "\"0x5C00009D.ae3170b5-4fd7-43b5-94c6-71b933342ffe.45\"" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8053, - "localId": "R8053", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8053", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the *subsequent alert event messages for the same alert event*, a <> shall set the OBR-3/EI-1 field to the unique identifier of the alert event message that relates to the same alert event as announced in the initial alert event message." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This identifier is usually defined by the gateway." - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "Unique Alert Event Message Identifier:" - ] - }, - { - "type": "block", - "lines": [ - "\"bd3170b6-4fd7-43b5-94c6-71b935642fac\"" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8054, - "localId": "R8054", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8054", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBR-4 field to *\"196616\\^MDC_EVT_ALARM^MDC\"*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8055, - "localId": "R8055", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8055", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBR-7 field to the date and time at which the Alert Reporter (AR) of the IHE ACM gateway created the alert event message to be sent." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Please refer to the *Appendix B B.7.1 OBR Observation Request Segment in ACM Transaction [PCD-04]* of the <> for further information." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8056, - "localId": "R8056", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8056", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBR-29 field to the unique alert event identifier of the initial alert event message as defined for the OBR-3 field." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Please refer to <> for further information." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The field is left empty for the initial alert event announcement message which contains the unique alert event identifier in the OBR-3 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "In all subsequent alert event messages, the OBR-29 field is set to the initial unique alert event identifier from the OBR-3 field." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The table <> defines the mapping of the Alert Event Identifier to the data fields of the HL7 data type *EIP* used in the OBR-29 field." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8057, - "localId": "R8057", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8057", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export device-related OBX segments, which define the hierarchical relationship of the alert event in the device's containment tree." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "There might be up to three device-related OBX segments for the MDS, VMD, and CHANNEL dependent on the specific device's containment tree. The general mapping of the device-related OBX segments is defined in table <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8058, - "localId": "R8058", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8058", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of the SDC device-related element, the identifier shall be mapped as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8061, - "localId": "R8061", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8061", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export an Event Identification OBX segment which identifies the alert event." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The mapping differs for physiological alert events and technical/advisory alert events (please refer also to <> for further information)." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8077, - "localId": "R8077", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8077", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall report the Alert Event Phase as \"update\" when there are more updates than just the Alert Priority as specified in <> for the \"update\" Alert Event Phase." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8062, - "localId": "R8062", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8062", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBX-14 field of the Event Identification OBX segment to the date/time of the alert event status change." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This either applies to a change of the *pm:AlertConditionState* or the *pm:AlertSignalState* of the signals related to the alert condition." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The date/time to be set in the OBX-14 field relates to the alert event phase. <> defines the date/time mapping per alert event phase." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The HL7 date and time format differs from the xsd date/time formats and requires a mapping accordingly (please refer to <> for further information)." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8063, - "localId": "R8063", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8063", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of the SDC coded element value, the identifier shall be mapped as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8064, - "localId": "R8064", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8064", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of the SDC coded element value, the identifier shall be mapped as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8065, - "localId": "R8065", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8065", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export a Source Identification OBX segment, which identifies the source that led to the alert event." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The mapping differs for physiological alert events and technical/advisory alert events (refer to <> for further information)." - }, - { - "type": "item", - "strMarker": "*", - "strText": "For physiological alert conditions, the alert event usually relates to a metric and its corresponding value that triggered the alert event. The *pm:AlertConditionDescriptor/pm:Source* element contains the handle to the related metric for the alert condition." - }, - { - "type": "item", - "strMarker": "*", - "strText": "For technical alert conditions, the alert event usually relates to a device-related element such as the MDS, a VMD, a CHANNEL, or METRIC. The *pm:AlertConditionDescriptor/pm:Source* element usually contains the handle to the device-related element. If *pm:Source* is empty, the alert condition relates to the device-related element which is the parent of the alert system to which the alert condition is assigned to." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8059, - "localId": "R8059", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8059", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For a physiological alert event, a <> shall set the OBX-3 field in the <> to the source identifier." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8060, - "localId": "R8060", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8060", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For a technical or advisory alert event, a <> shall set the OBX-5 field in the <> to the source identifier." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8066, - "localId": "R8066", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8066", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall map the source identification for physiological alerts (alarms or advisories) to an OBX segment as defined in <>. The gateway captures the state of the related metric at the time the alert event occurred." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "In SDC, the metric value that led to the physiological alert event is required to be reported in a state update before the *pm:AlertConditionState* update is reported. That is, the latest state of the metric related to the alert condition contains the value that led to the alert event when the *pm:AlertConditionState/@Presence* changed from *\"false\"* to *\"true\"*." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8067, - "localId": "R8067", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8067", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBX-4 Observation Sub-ID to *\"....2\"* where **, **, **, and ** are the numbers of the device’s containment tree levels assigned by the gateway." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8068, - "localId": "R8068", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8068", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set the OBX-11 Observation Result Status to *\"R\"*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8069, - "localId": "R8069", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8069", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If a private *<>* code is used for the coding of the SDC coded element value, the identifier shall be mapped as described in Section <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8070, - "localId": "R8070", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8070", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export an Event Phase OBX segment, which identifies the alert event phase." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The actual value of the IHE ACM Alert Event Phase attribute depends on a combination of SDC alert condition/signal states. The mapping is defined in table <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "All *pm:AlertSignalState* attributes, which are referred in table <> and needed to determine the actual alert phase, relate to *pm:AlertSignalState* elements with the *@Location* set to *\"Loc\"*." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Unless the *pm:AlertConditionState/@ActivationState* is set to *\"On\"*, the *pm:AlertConditionState/@Presence* is always set to *\"false\"*; that is, the gateway will not export any IHE ACM alert event messages." - } - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "OBX|6|ST|68481\\^MDC_ATTR_EVENT_PHASE^MDC|1.1.1.1.3|start||||||R" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8078, - "localId": "R8078", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8078", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall report the Alert Event Phase as \"update\" when there are more updates than just the Alert Priority as specified in <> for the \"update\" Alert Event Phase." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8071, - "localId": "R8071", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8071", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export an Alert State OBX segment, which defines the current state of the alert event." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The actual value of the IHE ACM Alert State attribute depends on a combination of SDC alert condition/signal states. The mapping is defined in table <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "All *pm:AlertSignalState* attributes, which are referred in table <> and needed to determine the actual alert phase, relate to *pm:AlertSignalState* elements with the *@Location* set to *\"Loc\"*." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Unless the *pm:AlertConditionState/@ActivationState* is set to *\"On\"*, the *pm:AlertConditionState/@Presence* is always set to *\"false\"*; that is, the gateway will not export any IHE ACM alert event messages." - } - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "OBX|7|ST|68482\\^MDC_ATTR_ALARM_STATE^MDC|1.1.1.1.4|active||||||R" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8072, - "localId": "R8072", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8072", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall only report an inactive alert condition when the alarm condition transitioned from active or latched to inactive." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8073, - "localId": "R8073", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8073", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall export an Inactivation State OBX segment, which defines the current inactivation state of the alert event." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The actual value of the IHE ACM Alert Inactivation State attribute depends on a combination of SDC alert condition/signal states. The mapping is defined in table <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The OBX-5 field can contain multiple inactivation states separated by the HL7 message 'repeating field' character (usually '~'). Example: *\"audio-off~alert-acknowledged\"*" - }, - { - "type": "item", - "strMarker": "*", - "strText": "All *pm:AlertSignalState* attributes, which are referred in table <> and needed to determine the actual alert phase, relate to *pm:AlertSignalState* elements with the *@Location* set to *\"Loc\"*." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Unless the *pm:AlertConditionState/@ActivationState* is set to *\"On\"*, the *pm:AlertConditionState/@Presence* is always set to *\"false\"*; that is, the gateway will not export any IHE ACM alert event messages." - } - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "OBX|8|ST|68483\\^MDC_ATTR_ALARM_INACTIVATION_STATE^MDC|1.1.1.1.5|enabled||||||R" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8074, - "localId": "R8074", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8074", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall map the SDC *pm:AlertConditionDescriptor/@Priority* attribute to an IHE ACM Alert Priority OBX segment as defined in the <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The mapping is defined in table <>." - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "OBX|9|ST|68484\\^MDC_ATTR_ALARM_PRIORITY^MDC|1.1.1.1.6|PM||||||R" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8075, - "localId": "R8075", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8075", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "In the case of an alert priority escalation or deescalation, the *pm:AlertConditionState/@ActualPriority* is updated with a new priority that differs from the previous *@ActualPriority* in the state or the *@Priority* in the descriptor." - ] - }, - { - "type": "block", - "lines": [ - "In this case, the gateway shall send a new alert event message with the updated priority." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_acm_gateway" - ], - "requirementNumber": 8076, - "localId": "R8076", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8076", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall map the SDC *pm:AlertConditionDescriptor/@Kind* to an IHE ACM Alert Type OBX segment as defined in the <>." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "The mapping is defined in table <>." - ] - } - ], - "exampleContent": [ - { - "type": "block", - "lines": [ - "OBX|10|ST|68485\\^MDC_ATTR_ALERT_TYPE^MDC|1.1.1.1.7|ST||||||R" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 8079, - "localId": "R8079", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8079", - "level": "SHALL", - "owner": { - "type": "gateway", - "id": "acm" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If *pm:AlertConditionState++++++/@ActualPriority* is available and set to *\"None\"*, or if *pm:AlertConditionState++++++/@ActualPriority* is NOT available and *pm:AlertConditionDescriptor++++++/@Priority* set to *\"None\"*, then the <> ALERT CONDITION is an advisory, and the alert type shall be set to *\"SA\"* in the IHE ACM Alert Type OBX segment." - ] - } - ], - "noteContent": [], - "exampleContent": [ - { - "type": "block", - "lines": [ - "OBX|10|ST|68485\\^MDC_ATTR_ALERT_TYPE^MDC|1.1.1.1.7|SA||||||R" - ] - } - ], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 701, - "localId": "R0701", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.701", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "All <> systems shall fully implement the semantic content requirements in the <> <> standard." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This includes strict implementation of the <> <> specification, as well as use of the <> nomenclature." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "requirementNumber": 702, - "localId": "R0702", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.702", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> shall disclose the OIDs that it uses throughout SDC communication." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This includes OIDs for private codes as detailed in <>, for private SDC extensions and for private PKPs." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 19, - "localId": "R0019", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.19", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not provide BICEPS extensions that use XML mixed content." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 20, - "localId": "R0020", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.20", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not provide BICEPS extensions that are based on or use the XML Schema QName type." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 21, - "localId": "R0021", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.21", - "level": "SHOULD", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "Biceps extensions, with timestamps who's interpretation by a <> would be affected by unexpected abrupt time adjustments, should support timestamp versioning using the <> extension." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Extension authors can add types that inherit from `sdpi:TimestampEpochVersionType` to support versioning their timestamps." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 8, - "localId": "R0008", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.8", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If available by the <> of a <>, the <> shall include every production specification listed in <> in its MDSs, unless a mapping to the BICEPS Participant Model exists." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "<> shows the mapping between IEEE 11073-10101 RefIds and the BICEPS Participant Model. A dash in the column _{var_column_pm_mapping}_ signifies a non-existent mapping." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Other production specifications may be used for types that are not listed in <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 9, - "localId": "R0009", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.9", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If available by the <> of a <>, the <> shall include every attribute listed in <> in its MDS descriptors." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Other attributes may be used for types that are not listed in <>." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 7, - "localId": "R0007", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.7", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall set `sdpi:MdcAttribute/@Code` to any code from the first partition of the IEEE 11073-10101 nomenclature in the range of 67841 (1::2305) to 68609 (1::3073)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This prevents <>s from using codes outside the intended range of attributes." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 12, - "localId": "R0012", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.12", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "If the administrative gender of a patient described by a pm:PatientDemographicsCoreData element is available, a <> shall at least add the sdpi:Gender extension to the pm:PatientDemographicsCoreData/ext:Extension element." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 14, - "localId": "R0014", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.14", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the `sdpi:EquipmentIdentifier` extension, a <> shall use a stable, globally unique URI that is constant across re-initializations of the <> and uniquely refers to a physical or virtual entity." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 15, - "localId": "R0015", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.15", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For the `sdpi:EquipmentIdentifier` extension, a <> shall use URI-encoded UUIDs or OIDs." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_participant" - ], - "requirementNumber": 16, - "localId": "R0016", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.16", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "To test if two equipment identifiers are equal, a <> shall perform case-sensitive string comparison." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 17, - "localId": "R0017", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.17", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall provide the `sdpi:EquipmentIdentifier` extension for each pm:MdsDescriptor in its <>." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This requirement allows a <> to rely on the `sdpi:EquipmentIdentifier` to be present in each <> at any time." - }, - { - "type": "item", - "strMarker": "*", - "strText": "If a <> provides a globally unique UDI, it can generate a the `sdpi:EquipmentIdentifier` UUID from that UDI. Alternatively, UUIDs can also be generated from UUIDv5 having a manufacturer specific namespace and the serial number as a name." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 18, - "localId": "R0018", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.18", - "level": "SHOULD", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each <> <> of a <>, the <> should provide the `sdpi:EquipmentIdentifier` extension for the pm:VmdDescriptor in its <>." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 800, - "localId": "R0800", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.800", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> shall set the", - "`sdpi:ReportSequence/@MessageNumber` to 1 for the first notification message", - "sent in a new publish-subscribe session." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "A new publish-subscribe session begins when the <>\nreceives a Subscribe message." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may send the first report before sending\nthe SubscribeResponse message." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The `sdpi:ReportSequence/@MessageNumber` is scoped to the publish-subscribe\nsession. Different subscriptions may share the same `sdpi:ReportSequence/@MessageNumber`." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 801, - "localId": "R0801", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.801", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> shall increment the", - "`sdpi:ReportSequence/@MessageNumber` by exactly 1 only when it receives confirmation", - "of successful delivery of the notification message." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "A <> only increments the\n`sdpi:ReportSequence/@MessageNumber` for successfully delivered notification messages." - }, - { - "type": "item", - "strMarker": "*", - "strText": "Successful delivery for <>s using\n<> is indicated by an HTTP status\ncode between 200 and 299." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A response may be generated by a server layer before the message reaches a\n<>. HTTP response 503 (service unavailable) is an\nexample of a status code that may be generated by a server layer. The\n<> does not change the `sdpi:ReportSequence/@MessageNumber`\nwhen it receives a fault status response." - }, - { - "type": "item", - "strMarker": "*", - "strText": "An absent response could mean either the notification or the notification response\nwas not delivered due to a network fault." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 802, - "localId": "R0802", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.802", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "Two reports sent with the same `sdpi:ReportSequence/@MessageNumber` shall be functionally identical", - "unless the <> receives a fault response to a notification", - "message from the recipient." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Two reports, containing information to update the MDIB for example, are functionally\nidentical when applying either report to update the MDIB would produce an identical result." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may change the content of a report to resolve\na fault when it receives a fault response. For example, a provider may send fewer historic\nreports after receiving a 413 status response (content too large) when using an HTTP transport." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A timeout (no response or partial response) should not be considered a fault response from\nthe recipient. A timeout on the <> may occur when the\n<>'s response is not delivered. A\n<> doesn't change the message content if if receives no response." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The transport channel may be closed, flushed or otherwise reset when no response or a partial\nresponse is received without affecting the `sdpi:ReportSequence/@MessageNumber`." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "EFFECTIVENESS", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 703, - "localId": "R0703", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.703", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each compound metric, the <> shall provide a *pm:Relation* element to relate to all metrics belonging to the same compound metric." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 704, - "localId": "R0704", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.704", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each *pm:Relation* of a <> that expresses membership in a compound metric, the <> shall set *pm:Code* to the coded term of the compound metric it belongs to." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 705, - "localId": "R0705", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.705", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each *pm:Relation* of a <> that expresses membership in a compound metric, the <> shall set *@Kind* to *SST*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 706, - "localId": "R0706", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.706", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each *pm:Relation* of a <> that expresses membership in a compound metric, the <> shall include all handle references of those metrics that belong to the same compound metric in *pm:Relation/@Entries* excluding the handle of the metric that contains the *pm:Relation*." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 707, - "localId": "R0707", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.707", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each compound metric of a <>, if *@StartTime* and *@StopTime* are available, the <> shall provide the same values for *@StartTime* and *@StopTime* in each metric of the compound metric to signify the same measurement cycle." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "*@DeterminationTime* may vary between individual metrics of the compound metric." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 708, - "localId": "R0708", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.708", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For each compound metric of a <>, if *@StartTime* and *@StopTime* are not available, the <> shall provide the same value for *@DeterminationTime* in each metric of the compound metric to signify the same measurement cycle." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 600, - "localId": "R0600", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.600", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall include the `sdpi:EpochSupport` extension and set `sdpi:EpochSupport/@Version=1` in every <> `pm:ClockDescriptor`, used as part of its System Function Contribution (<>), that uses epoch versioning for <>s." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The presence of `sdpi:EpochSupport` indicates support for this extension and related requirements." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may set `ext:MustUnderstand=\"true\"` to prevent consumers that do not understand this extension from processing the <>." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 601, - "localId": "R0601", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.601", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall ignore all epoch version information on any system clocks that do not include the `sdpi:EpochSupport` extension in any MDIB version or if the `sdpi:EpochSupport/@Version` changes within a single sequence id." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The `spdi:EpochSupport` extension is intended to be immutable." - }, - { - "type": "item", - "strMarker": "*", - "strText": "A <> may rely on future versions of the extension being backwards compatible." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 605, - "localId": "R0605", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.605", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "The <> shall increment `sdpi:Epochs/@Version` by exactly one, beginning from 0, for every non-slewing time adjustment to any system clock used as part of its System Function Contribution (<>)." - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 606, - "localId": "R0606", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.606", - "level": "SHOULD", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> should set the version of all versioned timestamps to 0 when it assigns a new MDIB sequence identifier (`pm:MdibVersionGroup/@SequenceId`)." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Epoch versions are generally scoped to the `pm:MdibVersionGroup/@SequenceId`. Some providers may carry versioned timestamps across new sequences, particularly if the new sequence is created for reasons other than an abrupt time adjustment." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 610, - "localId": "R0610", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.610", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> that versions timestamps in any `pm:AbstractMetricValue`, `pm:AbstractContextState`, `pm:AlertSystemState`, `pm:CalibrationInfo` and/or `pm:AlertConditionState` shall include, in every clock state update, the complete history of epoch offsets from the earliest version referenced in the MDIB to the current epoch." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Epoch offsets provide a mechanism for consumers to (approximately) reconstruct time between epochs. Reconstruction can only be approximate because there is no mechanism to determine the source and timing of any external discrepancies that led to the abrupt change in a <>." - }, - { - "type": "item", - "strMarker": "*", - "strText": "This allows a <> to choose which timestamps it versions. For example context binding timestamps (which may remain out of date significantly longer than other metrics) could be versioned but regularly updated metrics may not require timestamp versions." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 611, - "localId": "R0611", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.611", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not change the epoch version assigned to a timestamp without creating a new timestamp." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Epoch versions and timestamps are immutable and may not change independently." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "risk-mitigation", - "actors": [ - "somds_provider" - ], - "requirementNumber": 612, - "localId": "R0612", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.612", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "When the source clock of a versioned timestamp is ambiguous, a <> shall include a reference to the `pm:ClockDescriptor/@Handle` in `sdpi:TimestampEpochVersionType/@Clock`." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "The clock source is not ambiguous when there is only one clock in the whole <>, or there is only one clock in the `pm:Mds` containing the `pm:AbstractState` that includes the versioned timestamp and the version timestamp does not use a clock from a different `pm:Mds`." - }, - { - "type": "item", - "strMarker": "*", - "strText": "The `sdpi:TimestampEpochVersionType/@Clock` may be omitted when the source clock is not ambiguous to reduce message size." - }, - { - "type": "item", - "strMarker": "*", - "strText": "This extension does not support timestamps in a single `pm:AbstractState` to be versioned from more than one source clock." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - }, - "mitigating": "SAFETY", - "test": "INTEROPERABILITY" - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider", - "somds_consumer" - ], - "requirementNumber": 1006, - "localId": "R1006", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1006", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall send messages that convey msg:WaveformStream, msg:AbstractMetricReport, msg:AbstractOperationalStateReport, msg:AbstractComponentReport, msg:AbstractAlertReport, msg:ObservedValueStream, msg:DescriptionModificationReport, and msg:AbstractContextReport elements to a <> in the ascending order of the <>'s pm:MdibVersionGroup/@MdibVersion." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "BICEPS does not specify the order in which report messages are sent to <>s. This requirement restricts messages to be transmitted in the ascending order of the <>'s <> version." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1007, - "localId": "R1007", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1007", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "Within an <> sequence, a <> shall send msg:WaveformStream, msg:EpisodicMetricReport, msg:EpisodicOperationalStateReport, msg:EpisodicComponentReport, msg:EpisodicAlertReport, msg:ObservedValueStream, msg:DescriptionModificationReport, and msg:EpisodicContextReport messages with a strictly increasing msg:AbstractReport/@MdibVersion." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "This requirement verifies that for a <> there will be no two reports with the same <> version. Furthermore, it prohibits decrementing version numbers within an <> sequence." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1008, - "localId": "R1008", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1008", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not send msg:DescriptionModificationReport messages in which any two descriptors have the same handle." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This requirement simplifies processing of changes for a <> in a way that the <> can apply description modification changes one by one without additional consistency checks. If deletion and re-insertion of objects is needed, a <> sends out two description modification reports successively." - }, - { - "type": "item", - "strMarker": "*", - "strText": "DEPRECATION NOTICE - This requirement is being incorporated into the IEEE 11073-10207 BICEPS standard through a corrigendum. Once IEEE has published the IEEE 11073-10207 BICEPS Corrigenda, this SDPi requirement will be no longer needed, and will hence be removed." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1009, - "localId": "R1009", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1009", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall order msg:DescriptionModificationReport/msg:ReportPart elements in a way that for an inserted parent descriptor, inserted child descriptors appear after that parent descriptor." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "This explicitly requires to only communicate children as inserted if the parent has been inserted already, which simplifies insertion of descriptors on the <> side." - }, - { - "type": "item", - "strMarker": "*", - "strText": "DEPRECATION NOTICE - This requirement is being incorporated into the IEEE 11073-10207 BICEPS standard through a corrigendum (albeit without the clarification note immediately above). Once IEEE has published the IEEE 11073-10207 BICEPS Corrigenda, this SDPi requirement will be no longer needed, and will hence be removed." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1010, - "localId": "R1010", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1010", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall not add pm:AbstractDescriptor elements to pm:AbstractDescriptors below msg:DescriptionModificationReport/msg:ReportPart." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "Replaces biceps:R5024: \"Descriptors in this list SHALL not include nested descriptors.\"" - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_provider" - ], - "requirementNumber": 1011, - "localId": "R1011", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1011", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall communicate a parent descriptor as deleted only if it does not include any child descriptors." - ] - } - ], - "noteContent": [ - { - "type": "ulist", - "items": [ - { - "type": "item", - "strMarker": "*", - "strText": "Replaces biceps:R5046: \"If a parent descriptor is deleted, then all child descriptors of that parent SHALL communicated as deleted in advance.\"" - }, - { - "type": "item", - "strMarker": "*", - "strText": "DEPRECATION NOTICE - This requirement is being incorporated into the IEEE 11073-10207 BICEPS standard through a corrigendum. Once IEEE has published the IEEE 11073-10207 BICEPS Corrigenda, this SDPi requirement will be no longer needed, and will hence be removed." - } - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1015, - "localId": "R1015", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1015", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "For any metric's *@StepWidth* or *@Resolution*, a <> shall ignore trailing zeros after the decimal point when determining display precision." - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "XML Schema allows appending trailing zeros to decimal numbers such as in \"0.0100\". However, in this example, the last two trailing zeros are insignificant to the decimal's value and hence must be ignored when determining the precision." - ] - }, - { - "type": "block", - "lines": [ - "However, this does not apply for the zeros _before_ the decimal point. In this case the zeros are relevant for determining the precision, e.g., in \"10\"." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1016, - "localId": "R1016", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1016", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall determine the _active range_ for the current metric's *@Value* or a set of multiple metric's *@Samples* to be displayed at the <>'s display by the following priority order:" - ] - }, - { - "type": "olist", - "items": [ - { - "type": "item", - "strMarker": ".", - "strText": "The *pm:PhysiologicalRange* element of the metric state where the current metric's *@Value* or a sample that represents the display precision for the entire set of metric's *@Samples* falls into." - }, - { - "type": "item", - "strMarker": ".", - "strText": "The *pm:TechnicalRange* element of the metric descriptor where the current metric's *@Value* or a sample that represents the display precision for the entire set of metric's *@Samples* falls into." - } - ] - } - ], - "noteContent": [ - { - "type": "block", - "lines": [ - "If the <> wants to display, for example, a wave on the screen which consists of samples from multiple metric's *@Samples*, the display precision of the wave must be determined from the display precision of the individual samples. It is then up to the <> to select a common display precision for all samples to be displayed at the screen as a wave." - ] - } - ], - "exampleContent": [], - "relatedContent": [] - } - }, - { - "type": "tech-feature", - "actors": [ - "somds_consumer" - ], - "requirementNumber": 1017, - "localId": "R1017", - "oid": "1.3.6.1.4.1.19376.1.6.2.10.10.1017", - "level": "SHALL", - "owner": { - "type": "content-module", - "id": "biceps" - }, - "groups": [], - "specification": { - "normativeContent": [ - { - "type": "block", - "lines": [ - "A <> shall determine the current display precision for a metric's *@Value* or *@Samples* by the following priority order:" - ] - }, - { - "type": "olist", - "items": [ - { - "type": "item", - "strMarker": "1.", - "strText": "*ext:Extension/mpkp:DisplayPrecision/@StepWidth* is defined for the _active range_" - }, - { - "type": "item", - "strMarker": "1.", - "strText": "*pm:Range/@StepWidth* is defined for the _active range_" - }, - { - "type": "item", - "strMarker": "1.", - "strText": "*@Resolution* if there is no _active range_ with a *@StepWidth* defined" - } - ] - } - ], - "noteContent": [], - "exampleContent": [], - "relatedContent": [] - } - } -] \ No newline at end of file diff --git a/sdpi-supplement/referenced-artifacts/sdpi-transactions.json b/sdpi-supplement/referenced-artifacts/sdpi-transactions.json deleted file mode 100644 index e90c6ac8..00000000 --- a/sdpi-supplement/referenced-artifacts/sdpi-transactions.json +++ /dev/null @@ -1,449 +0,0 @@ -[ - { - "id": "DEV-23", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.23" - ], - "label": "Announce Network Presence", - "anchor": "vol2_clause_dev_23", - "actorRoles": [ - { - "actorId": "somds_provider", - "contribution": "INITIATOR", - "description": [ - "Announces its presence by multicasting <> messages to all listening systems.", - "" - ] - }, - { - "actorId": "somds_consumer", - "contribution": "RECEIVER", - "description": [ - "Listens for <> messages to identify any <>s that it may exchange messages with and further retrieve a <>'s service capabilities.", - "" - ] - } - ] - }, - { - "id": "DEV-24", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.24" - ], - "label": "Discover Network Topology", - "anchor": "vol2_clause_dev_24", - "actorRoles": [ - { - "actorId": "somds_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by sending <> or <> messages to <>s. Then listens for <> and <> messages to discover those <>s that it intends to exchange messages with and further retrieves the <>'s service capabilities.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for <> and <> messages, which it responds to with <> or <> messages, respectively.", - "" - ] - } - ] - }, - { - "id": "DEV-25", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.25" - ], - "label": "Discover BICEPS Services", - "anchor": "vol2_clause_dev_25", - "actorRoles": [ - { - "actorId": "somds_consumer", - "contribution": "INITIATOR", - "description": [ - "Asks for the resource representation of the <> via the <> message.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "RESPONDER", - "description": [ - "Sends its resource representation to the <> via the <> message.", - "" - ] - } - ] - }, - { - "id": "DEV-27", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.27" - ], - "label": "Manage BICEPS Subscription", - "anchor": "vol2_clause_dev_27", - "actorRoles": [ - { - "actorId": "somds_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by first subscribing to a <> by sending a <> message. While the subscription is running, the subscription is kept alive by sending <> messages and receiving <> messages.", - "", - "Finally, the <> unsubscribes from a <> by sending an <> message.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for <>, <> and <> messages, which it responds to with <>, <> or <> messages respectively.", - "", - "While a subscription is running, the <> delivers <> messages.", - "", - "When at some point the subscription has to be ended, the <> sends a <> message.", - "" - ] - } - ] - }, - { - "id": "DEV-28", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.28" - ], - "label": "Notify Change in System Context and Capabilities", - "anchor": "vol2_clause_dev_28", - "actorRoles": [ - { - "actorId": "somds_consumer", - "contribution": "RECEIVER", - "description": [ - "Listens for a <> message to retrieve context updates.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "INITIATOR", - "description": [ - "While a subscription is running, the <> delivers <> messages." - ] - } - ] - }, - { - "id": "DEV-29", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.29" - ], - "label": "Publish BICEPS Update Reports", - "anchor": "vol2_clause_dev_29", - "actorRoles": [ - { - "actorId": "somds_consumer", - "contribution": "RECEIVER", - "description": [ - "Listens for a <> message to retrieve update reports.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "INITIATOR", - "description": [ - "While a subscription is running, the <> delivers <> messages." - ] - } - ] - }, - { - "id": "DEV-30", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.30" - ], - "label": "Retrieve BICEPS Content", - "anchor": "vol2_clause_dev_30", - "actorRoles": [ - { - "actorId": "somds_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by sending a <> message to a <>. Then listens for a <> message to retrieve the <>'s MDIB.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for <> messages, which it responds to with <> messages respectively.", - "" - ] - } - ] - }, - { - "id": "DEV-33", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.33" - ], - "label": "Retrieve Localization Information", - "anchor": "vol2_clause_dev_33", - "actorRoles": [ - { - "actorId": "somds_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by sending a <> message to a <>. Then listens for a <> message to retrieve the <>'s sequence of available languages.", - "", - "The sequence of available languages can be used by the <> to send a <> message, which is answered by the <> with <> message that contains a filtered set of localized texts.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for <> messages, which it responds to with <> messages respectively. Also listens for <> messages, which it responds to with <> messages respectively.", - "" - ] - } - ] - }, - { - "id": "DEV-34", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.34" - ], - "label": "Reserved", - "anchor": "vol2_clause_dev_34" - }, - { - "id": "DEV-35", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.35" - ], - "label": "Establish Medical Data Exchange", - "anchor": "vol2_clause_dev_35", - "actorRoles": [ - { - "actorId": "somds_medical_data_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by first subscribing to a <> by sending a {var_label_dev_35_message_subscribe} message.", - "" - ] - }, - { - "actorId": "somds_medical_data_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for {var_label_dev_35_message_subscribe} messages, which it responds to with {var_label_dev_35_message_subscribe_response}.", - "" - ] - } - ] - }, - { - "id": "DEV-36", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.36" - ], - "label": "Publish Medical Data", - "anchor": "vol2_clause_dev_36", - "actorRoles": [ - { - "actorId": "somds_medical_data_consumer", - "contribution": "RESPONDER", - "description": [ - "Listens for a Notification message to retrieve medical data updates.", - "" - ] - }, - { - "actorId": "somds_medical_data_provider", - "contribution": "INITIATOR", - "description": [ - "While a subscription is running, the <> delivers Notification messages.", - "" - ] - } - ] - }, - { - "id": "DEV-37", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.37" - ], - "label": "Retrieve Medical Data", - "anchor": "vol2_clause_dev_37", - "actorRoles": [ - { - "actorId": "somds_medical_data_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by sending a {var_label_dev_37_message_getmdib} message to a RefActor:somds_medical_data_provider[]. Then listens for a {var_label_dev_37_message_getmdibresponse} message to retrieve the RefActor:somds_medical_data_provider[]'s MDIB.", - "" - ] - }, - { - "actorId": "somds_medical_data_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for {var_label_dev_37_message_getmdib} messages, which it responds to with {var_label_dev_37_message_getmdibresponse} messages respectively.", - "" - ] - } - ] - }, - { - "id": "DEV-38", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.38" - ], - "label": "Establish Medical Alert Exchange", - "anchor": "vol2_clause_dev_38", - "actorRoles": [ - { - "actorId": "somds_medical_alert_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by first subscribing to a <> by sending a {var_label_dev_38_message_subscribe} message.", - "" - ] - }, - { - "actorId": "somds_medical_alert_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for {var_label_dev_38_message_subscribe} messages, which it responds to with {var_label_dev_38_message_subscribe_response}.", - "" - ] - } - ] - }, - { - "id": "DEV-39", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.39" - ], - "label": "Publish Medical Alert Update", - "anchor": "vol2_clause_dev_39", - "actorRoles": [ - { - "actorId": "somds_medical_alert_consumer", - "contribution": "RESPONDER", - "description": [ - "Listens for a Notification message to retrieve medical alert updates.", - "", - "" - ] - }, - { - "actorId": "somds_medical_alert_provider", - "contribution": "INITIATOR", - "description": [ - "While a subscription is running, the <> delivers Notification messages.", - "" - ] - } - ] - }, - { - "id": "DEV-40", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.40" - ], - "label": "Retrieve Medical Alert Status", - "anchor": "vol2_clause_dev_40", - "actorRoles": [ - { - "actorId": "somds_medical_alert_consumer", - "contribution": "INITIATOR", - "description": [ - "Initiates communication by sending a {var_label_dev_40_message_getmdib} message to a <>. Then listens for a {var_label_dev_40_message_getmdibresponse} message to retrieve the <>'s MDIB.", - "" - ] - }, - { - "actorId": "somds_medical_alert_provider", - "contribution": "RESPONDER", - "description": [ - "Listens for {var_label_dev_40_message_getmdib} messages, which it responds to with {var_label_dev_40_message_getmdibresponse} messages respectively.", - "" - ] - } - ] - }, - { - "id": "DEV-46", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.46" - ], - "label": "Update Network Presence", - "anchor": "vol2_clause_dev_46", - "actorRoles": [ - { - "actorId": "discovery_proxy", - "contribution": "RECEIVER", - "description": [ - "Listens for <> or", - "<> messages to add or", - "remove <> endpoint metadata to/from its", - "internal database.", - "" - ] - }, - { - "actorId": "somds_provider", - "contribution": "INITIATOR", - "description": [ - "When joining a <>, it announces its presence to the", - "<>. When deliberately leaving the", - "<>, it announces its absence to the <>.", - "" - ] - } - ] - }, - { - "id": "DEV-47", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.4.47" - ], - "label": "Retrieve Network Presence", - "anchor": "vol2_clause_dev_47", - "actorRoles": [ - { - "actorId": "discovery_proxy", - "contribution": "RESPONDER", - "description": [ - "Forwards <>", - "and <>", - "messages received from <>s.", - "", - "Responds to incoming <>", - "and <> messages.", - "" - ] - }, - { - "actorId": "somds_consumer", - "contribution": "INITIATOR", - "description": [ - "Uses <> and", - "<>", - "messages to seek endpoint metadata.", - "", - "Optionally subscribes to a <> in order", - "to receive <>", - "and <> messages.", - "" - ] - } - ] - } -] \ No newline at end of file diff --git a/sdpi-supplement/referenced-artifacts/sdpi-use-cases.json b/sdpi-supplement/referenced-artifacts/sdpi-use-cases.json deleted file mode 100644 index e8ceac4a..00000000 --- a/sdpi-supplement/referenced-artifacts/sdpi-use-cases.json +++ /dev/null @@ -1,706 +0,0 @@ -{ - "stad": { - "id": "stad", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1" - ], - "title": "Synchronized Time Across Devices", - "anchor": "vol1_clause_appendix_c_use_case_stad", - "specification": { - "background": [ - { - "step": "GIVEN", - "description": "All devices communicate using a common <> protocol" - }, - { - "step": "AND", - "description": "A Time Source (TS) Service is on the <> network" - } - ], - "scenarios": [ - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1.1" - ], - "title": "Device is connected to the MD LAN network with a Time Source service", - "specification": [ - { - "step": "GIVEN", - "description": "Device has detected at least one <>" - }, - { - "step": "WHEN", - "description": "The <> is operational" - }, - { - "step": "THEN", - "description": "The device will synchronize its time with the <>" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1.2" - ], - "title": "Device is connected to the MD LAN network and a user wants to change the device's time", - "specification": [ - { - "step": "GIVEN", - "description": "Device is operational in <> network" - }, - { - "step": "WHEN", - "description": "The user attempts to change the time on the device manually" - }, - { - "step": "THEN", - "description": "The device will disable the ability to change its time manually" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1.3" - ], - "title": "Device is connected to the MD LAN network and cannot connect to a TS Service", - "specification": [ - { - "step": "GIVEN", - "description": "Device has just connected to the <> network and has not detected any <>s" - }, - { - "step": "WHEN", - "description": "The <> is not operational or inaccessible" - }, - { - "step": "THEN", - "description": "The device will not participate on the <> network until it detects and connects to a <>" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1.4" - ], - "title": "Devices are operational in the MD LAN network but cannot access the TS Service", - "specification": [ - { - "step": "GIVEN", - "description": "Device is operational on the <> network" - }, - { - "step": "WHEN", - "description": "The <> is no longer operational or otherwise inaccessible" - }, - { - "step": "THEN", - "description": "The device will rely on its internal clock for time synchronization" - }, - { - "step": "AND", - "description": "The device will provide the accuracy of its clock in its <>" - }, - { - "step": "AND", - "description": "The device will periodically attempt to reconnect to the <>" - }, - { - "step": "AND", - "description": "The device will notify the user about the fact, that the <> cannot be reached" - }, - { - "step": "AND", - "description": "The device will create a log entry noting the disconnection from the <>" - }, - { - "step": "AND", - "description": "The ability to change the device time manually will remain disabled" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1.5" - ], - "title": "Devices are operational in the MD LAN network but cannot access the TS Service and clock drift is unacceptable", - "specification": [ - { - "step": "GIVEN", - "description": "The <> is operational on the <> network" - }, - { - "step": "AND", - "description": "The <> is no longer operational or otherwise inaccessible" - }, - { - "step": "WHEN", - "description": "The clock drift of the device internal clock exceeds an internal threshold" - }, - { - "step": "OR", - "description": "The timestamps of the received data are no longer accurate enough" - }, - { - "step": "THEN", - "description": "The device will notify the user that time synchronization is no longer functional, which will limit the availability of SDC System Functionality" - }, - { - "step": "AND", - "description": "The device will create a log entry noting inaccurate time synchronization" - }, - { - "step": "AND", - "description": "The device will periodically attempt to reconnect to the <> and <>" - }, - { - "step": "AND", - "description": "Based on a <>'s risk management, the device may be disconnected entirely from the <> network." - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1.6" - ], - "title": "A device, operational in the MD LAN network, determines a non-slewing time adjustment is required", - "specification": [ - { - "step": "GIVEN", - "description": "The device is operational on the <> network," - }, - { - "step": "WHEN", - "description": "The device's <> determines an <> is required," - }, - { - "step": "THEN", - "description": "The device will create a log entry that includes at least a <> for the adjustment in both the <> before and after the <> was made," - }, - { - "step": "AND", - "description": "The <> will notify <>s, using its system function contributions (<>), of the change to the provider's <>," - }, - { - "step": "OR", - "description": "The <> will initiate a new MDIB sequence." - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.1.7" - ], - "title": "A somds consumer, operational in the MD LAN network, receives data affected by an abrupt time adjustment", - "specification": [ - { - "step": "GIVEN", - "description": "The <> is operational on the <> network," - }, - { - "step": "WHEN", - "description": "The <> receives notifications and/or <> state indicating a <> has made abrupt time adjustment to its device clock," - }, - { - "step": "THEN", - "description": "The <> will notify next users of data of suspicious timestamps." - } - ] - } - ] - } - }, - "sicdsp": { - "id": "sicdsp", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.2" - ], - "title": "Standalone ICU Dashboard Single Patient", - "anchor": "vol1_clause_appendix_c_use_case_sicdsp", - "specification": { - "background": [ - { - "step": "GIVEN", - "description": "All devices communicate using a common <> protocol" - }, - { - "step": "AND", - "description": "At least one ICU <> display" - }, - { - "step": "AND", - "description": "Devices in the room have already been assigned to the <>" - } - ], - "scenarios": [ - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.2.1" - ], - "title": "Devices are Accessible to the Dashboard", - "specification": [ - { - "step": "GIVEN", - "description": "Dashboard has detected at least one assigned accessible ICU device" - }, - { - "step": "WHEN", - "description": "the ICU devices are communicating on the <>" - }, - { - "step": "THEN", - "description": "the <> will display parameter, waveform, alarm, setting, imagine, etc. information from all assigned accessible devices" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.2.2" - ], - "title": "ICU Devices are Inaccessible to the Dashboard", - "specification": [ - { - "step": "GIVEN", - "description": "Dashboard cannot detect any assigned accessible ICU devices" - }, - { - "step": "THEN", - "description": "the <> will display an error message" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.2.3" - ], - "title": "One or more ICU devices become Inaccessible to the Dashboard", - "specification": [ - { - "step": "GIVEN", - "description": "<> cannot detect a previously detected assigned ICU device" - }, - { - "step": "THEN", - "description": "the <> will display an error message" - } - ] - } - ] - } - }, - "sicdmp": { - "id": "sicdmp", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.3" - ], - "title": "Standalone ICU Dashboard Multiple Patient", - "anchor": "vol1_clause_appendix_c_use_case_sicdmp", - "specification": { - "background": [ - { - "step": "GIVEN", - "description": "All devices communicate using a common <> protocol" - }, - { - "step": "AND", - "description": "At least one ICU Dashboard display" - }, - { - "step": "AND", - "description": "Devices from specific ICU rooms have been assigned to the Dashboard" - } - ], - "scenarios": [ - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.3.1" - ], - "title": "ICU Devices are Accessible to the Dashboard", - "specification": [ - { - "step": "GIVEN", - "description": "Dashboard has detected at least one assigned accessible ICU device" - }, - { - "step": "WHEN", - "description": "the ICU Devices are communicating on the <>" - }, - { - "step": "THEN", - "description": "the Dashboard will display parameter, waveform, setting, alarm, imaging, etc. information from those devices (based on configuration)" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.3.2" - ], - "title": "ICU Devices are Inaccessible to the Dashboard", - "specification": [ - { - "step": "GIVEN", - "description": "Dashboard cannot detect any assigned accessible ICU devices" - }, - { - "step": "THEN", - "description": "the Dashboard will display an error message" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.3.3" - ], - "title": "One or more ICU Devices are Inaccessible to the Dashboard", - "specification": [ - { - "step": "GIVEN", - "description": "Dashboard cannot detect any previously assigned accessible ICU devices" - }, - { - "step": "THEN", - "description": "the Dashboard will display an error message" - } - ] - } - ] - } - }, - "ddes": { - "id": "ddes", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.4" - ], - "title": "Device Data to Enterprise Systems", - "anchor": "vol1_clause_appendix_c_use_case_ddes", - "specification": { - "background": [ - { - "step": "GIVEN", - "description": "All devices communicate using a common <> protocol" - }, - { - "step": "AND", - "description": "There is at least one Data <> (<>) Service" - }, - { - "step": "AND", - "description": "All devices report either a device label and/or location" - }, - { - "step": "AND", - "description": "A <> Service is associated with a specific set of device labels, and/or location(s) (i.e., devices in scope)" - } - ], - "scenarios": [ - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.4.1" - ], - "title": "New in scope device is connected to network with <> service", - "specification": [ - { - "step": "GIVEN", - "description": "The <> Service has detected a new in scope device" - }, - { - "step": "WHEN", - "description": "The <> Service is operational" - }, - { - "step": "THEN", - "description": "The <> Service will connect to the device and export data to the EHR using the HL7 v2 based IHE DEV DOR actor of the DEV DEC Profile" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.4.2" - ], - "title": "<> Service is connected to the EHR", - "specification": [ - { - "step": "GIVEN", - "description": "The <> Service is exporting data to the EHR" - }, - { - "step": "THEN", - "description": "The <> Service will comply with all IHE DEV / PCD DEC Profile DOR actor functional and test requirements" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.4.3" - ], - "title": "<> Service has a failure", - "specification": [ - { - "step": "GIVEN", - "description": "The <> Service was connected to in scope devices and to an Enterprise system and fails" - }, - { - "step": "THEN", - "description": "The <> Service will backfill its data store and then backfill to the EHR when it recovers from its failure" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.4.4" - ], - "title": "<> Service connection to the Enterprise System fails", - "specification": [ - { - "step": "GIVEN", - "description": "The Enterprise System stops receiving data from the <> Service" - }, - { - "step": "WHEN", - "description": "There is a communications failure between the <> Service and the Enterprise System" - }, - { - "step": "THEN", - "description": "The <> Service will backfill missed data to the Enterprise System when communications resumes" - } - ] - } - ] - } - }, - "acns": { - "id": "acns", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.5" - ], - "title": "Alerts to Clinician Notification Systems", - "anchor": "vol1_clause_appendix_c_use_case_acns", - "specification": { - "background": [ - { - "step": "GIVEN", - "description": "All devices communicate using a common <> protocol" - }, - { - "step": "AND", - "description": "At least one Alert <> (AGW) Service on the <> network" - }, - { - "step": "AND", - "description": "At least one <> is connected to the AGW Service" - }, - { - "step": "AND", - "description": "All devices report either a device label and/or location and/or patient ID" - }, - { - "step": "AND", - "description": "The AGW Service is associated with a specific set of device labels, and/or location(s) (Scope)" - } - ], - "scenarios": [ - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.5.1" - ], - "title": "New device is connected to network with AGW service", - "specification": [ - { - "step": "GIVEN", - "description": "the AGW Service has detected a new device in its scope" - }, - { - "step": "WHEN", - "description": "the AGW Service is operational" - }, - { - "step": "THEN", - "description": "the AGW Service will connect to the device and communicate alerts to the Clinician Notification System" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.5.2" - ], - "title": "The AGW service loses connectivity with the ICU devices", - "specification": [ - { - "step": "GIVEN", - "description": "the AGW Service no longer communicates with ICU devices in its scope" - }, - { - "step": "WHEN", - "description": "There is a communications failure" - }, - { - "step": "THEN", - "description": "the AGW Service will notify the Clinician Notification System of the failure" - }, - { - "step": "THEN", - "description": "when the AGW Service regains communication with the devices it will resume reporting active alerts to the Clinician Notification System" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.5.3" - ], - "title": "The AGW service fails", - "specification": [ - { - "step": "GIVEN", - "description": "the AGW Service fails" - }, - { - "step": "THEN", - "description": "the Clinician Notification System will detect a loss of communications with the AGW Service" - }, - { - "step": "THEN", - "description": "when the AGW Service recovers it will resume reporting active alerts to the Clinician Notification System" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.5.4" - ], - "title": "The Clinician Notification System loses connectivity with the AGW", - "specification": [ - { - "step": "GIVEN", - "description": "the Clinician Notification System can no longer communicate with the AGW Service" - }, - { - "step": "THEN", - "description": "the Clinician Notification System will detect a loss of communications with the AGW Service" - }, - { - "step": "THEN", - "description": "when connectivity recovers, the Clinician Notification System will resume reporting active alerts" - } - ] - } - ] - } - }, - "aars": { - "id": "aars", - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.6" - ], - "title": "Alerts to Alert Recording Systems", - "anchor": "vol1_clause_appendix_c_use_case_aars", - "specification": { - "background": [ - { - "step": "GIVEN", - "description": "All devices communicate using a common <> protocol" - }, - { - "step": "AND", - "description": "At least one <> (<>) Service on the <>" - }, - { - "step": "AND", - "description": "At least one Alert Recording System is connected to the <> (<>) Service" - }, - { - "step": "AND", - "description": "All devices report either a device label and/or location and/or patient ID" - }, - { - "step": "AND", - "description": "The AGW Service is associated with a specific set of device labels, and/or location(s)" - } - ], - "scenarios": [ - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.6.1" - ], - "title": "New device is connected to network with AGW service", - "specification": [ - { - "step": "GIVEN", - "description": "the AGW Service has detected a new device in its scope" - }, - { - "step": "WHEN", - "description": "the AGW Service is operational" - }, - { - "step": "THEN", - "description": "the AGW Service will connect to the device and communicate alerts to the Alert Recording System" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.6.2" - ], - "title": "The AGW service loses connectivity with the ICU devices", - "specification": [ - { - "step": "GIVEN", - "description": "the AGW Service no longer communicates with ICU devices in its scope" - }, - { - "step": "WHEN", - "description": "There is a communications failure" - }, - { - "step": "THEN", - "description": "the AGW will notify the Alert Recording System of the failure" - }, - { - "step": "THEN", - "description": "when the AGW regains communication with the devices it will resume reporting active alerts to the Alert Recording System and attempt to backfill any missing alerts" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.6.3" - ], - "title": "The AGW service fails", - "specification": [ - { - "step": "GIVEN", - "description": "the AGW fails" - }, - { - "step": "THEN", - "description": "the Alert Recording System will detect a loss of communications with the AGW" - }, - { - "step": "THEN", - "description": "when the AGW Service recovers it will resume reporting active alerts to the Alert Recording System and attempt to backfill any missing alerts" - } - ] - }, - { - "oids": [ - "1.3.6.1.4.1.19376.1.6.2.10.9.6.4" - ], - "title": "The Alert Recording System loses connectivity with the AGW", - "specification": [ - { - "step": "GIVEN", - "description": "the Alert Recording System can no longer communicate with the AGW" - }, - { - "step": "THEN", - "description": "the Alert Recording System will detect a loss of communications with the AGW Service" - }, - { - "step": "THEN", - "description": "when the AGW Service regains communication with the Alert Recording System it will resume reporting active alerts to the Alert Recording System and backfill any missing alerts." - } - ] - } - ] - } - } -} \ No newline at end of file