dim tooling status chicago september 2014 michael faughn prometheus computing llc

29
DIM Tooling Status Chicago September 2014 Michael Faughn Prometheus Computing LLC

Upload: declan-gowen

Post on 15-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

DIM Tooling StatusChicago

September 2014Michael Faughn

Prometheus Computing LLC

The Model is the StandardWhy?

Computable

Artifacts derived from a common sourcePrinted StandardSoftware toolsXML Schema

DIM UML developmentInitial UML model programmatically derived from

11073-10201:2004 in early 2012

Manual revisions performed

Supporting models integratedNomenclature / RTMMS20101 (ASN.1)Device ProfilesMetamodel

UML to Artifacts: ChallengesUML has trouble expressing some constructs in a

convenient wayBIT STRINGClass instance variablesBNF

Each UML element type used has to be implemented for each builder plugin that produces an artifact.

Keep the standard ‘pure’ vs. supporting the functionality that artifacts require

Before Phoenix 2014http://mdcx73-working.wikispaces.com/

_NIST-ArtG

Goal model

Draft of Device Profile Editor functional requirements

Complete DIM UML

Addressed some issues with the model

Work on the tooling that makes the tools

Before Phoenix 2014Programmatically derived from UML:

XML Schema (needs updating)ASN.1Relational database schemaDevice Profile Editor web applicationJSON meta-informationRich Ruby API for interacting with DIM objectsPDF of Standard (not bad, not perfect)

PDF Snippet From LaTeX

API Examplep = MyDevice::PCDProfile.create(name: "Infusion", intended_use: 'Normative (11073)', purpose: 'Demonstration')

mds = DIM::System::SinglePatientMDS.create(name: "Infusion Pump MDS")

mds.set_ref_id "MDC_DEV_PUMP_INFUS_MDS"

p.profileroot = mds

p.save

v = DIM::Medical::VMD.create(name: "Infusion Pump VMD")

v.set_ref_id "MDC_DEV_PUMP_INFUS_VMD"

mds.vmds_add v

mds.save

delivery_ch = DIM::Medical::Channel.create(:name => "Delivery Channel")

v.channels_add delivery_ch

delivery_ch.set_ref_id "MDC_DEV_PUMP_INFUS_CHAN_DELIVERY”

API in REPLmain 003(0) > DIM::Medical::VMD.first

=> #<DIM::Medical::VMD @values={:id=>1, :class_reserved_id=>nil, :name_binding_id=>nil, :ref_id_id=>5818, :ext_obj_relations_id=>nil, :ext_obj_relations_class=>nil, :label_string_id=>nil, :label_string_class=>nil, :type_id=>nil, :locale_id=>nil, :locale_class=>nil, :alertoralertstatus_id=>nil, :alertoralertstatus_class=>nil, :position_id=>nil, :position_class=>nil, :compatibility_id_dim_id=>nil, :compatibility_id_dim_class=>nil, :operating_hours_id=>nil, :operating_hours_class=>nil, :operation_cycles_id=>nil, :operation_cycles_class=>nil, :instance_number_id=>nil, :vmd_model_id=>nil, :vmd_status=>nil, :measurement_principle=>nil}>

main 011(0) > DIM::Medical::VMD.attributes.keys #=> [:vmd_status, :measurement_principle]

main 012(0) > DIM::Medical::VMD.associations.keys

=> [:property_specializations, :property_uses, :valid_terms, :class_reserved, :name_binding, :ref_id, :ext_obj_relations, :label_string, :type, :handle, :locale, :alertoralertstatus, :position, :compatibility_id_dim, :operating_hours, :operation_cycles, :instance_number, :vmd_model, :parameter_group, :service_and_control, :channels, :pm_store, :production_specification, :mds, :deviceprofile]

What Profile Editor can do now 1/3

Assemble DIM objects into containment trees.Composition constrained by the standard

Allow user to specify whether a given ASN.1 attribute is used or not within the context of an object instance in a profile

Associate device profile elements with terms from RTMMS

Fetch new and updated terms from RTMMS

https://rtmms.nist.gov/rtmms/getTermsJson.do?fromDate=01012014000000

[{"referenceId":"MDC_DIM_MEGA_INTL_UNIT","termCode":267620,"updateDate":"Jun 5, 2014 10:32:22 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_ML","termCode":267748,"updateDate":"Jun 5, 2014 10:32:46 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_MIN","termCode":267812,"updateDate":"Jun 5, 2014 10:33:30 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_HR","termCode":267844,"updateDate":"Jun 5, 2014 10:33:59 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_DAY","termCode":267876,"updateDate":"Jun 5, 2014 10:34:33 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_KG","systematicName":"","commonTerm":"","acronym":"","termDescription":"","updateDate":"Jun 5, 2014 10:35:13 AM","status":"PROPOSED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_M_SQ","systematicName":"","commonTerm":"","acronym":"","termDescription":"","updateDate":"Jun 5, 2014 10:36:03 AM","status":"PROPOSED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_KG_PER_SEC","termCode":267908,"updateDate":"Jun 5, 2014 10:38:10 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_KG_PER_MIN","termCode":267940,"updateDate":"Jun 5, 2014 10:38:25 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_KG_PER_HR","termCode":267972,"updateDate":"Jun 5, 2014 10:38:48 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_KG_PER_DAY","termCode":268004,"updateDate":"Jun 5, 2014 10:39:05 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_M_SQ_PER_SEC","systematicName":"","commonTerm":"","acronym":"","termDescription":"","updateDate":"Jun 5, 2014 10:39:28 AM","status":"PROPOSED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_M_SQ_PER_MIN","termCode":269124,"updateDate":"Jun 5, 2014 10:39:48 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_M_SQ_PER_HR","termCode":269092,"updateDate":"Jun 5, 2014 10:40:15 AM","status":"APPROVED","type":"UNIT","source":"RTM"},{"referenceId":"MDC_DIM_MEGA_INTL_UNIT_PER_M_SQ_PER_DAY","termCode":269348,"updateDate":"Jun 5, 2014 10:40:33 AM","status":"APPROVED","type":"UNIT","source":"RTM"}]

What Profile Editor can do now 2/3

Allow creation of Normative (11073-103xx) and User Defined device profiles

Allow user to view metadata about DIM classes and attributes

Use any device profile as a template for a new device profile via cloning*

What Profile Editor can do now 3/3

Deliver Summary XML (Rosetta Containment Hierarchy) representation of a device profile

Deliver detailed HTML report of containment and terminology

Deliver comprehensive representation of Device Profile in JSON*

What Profile Editor can do now 3/3

Deliver Summary XML (Rosetta Containment Hierarchy) representation of a device profile

Deliver detailed HTML report of containment and terminology – see attached HTML

Deliver comprehensive representation of Device Profile in JSON*

Model ManagerNow

The model is in the web applicationUsers can manipulate the modelModels are governing and informing Device Profile

Editor Is integrated with Standard Document Manager

FutureModel will feed back into MagicDrawXMI and/or MagicDraw API

Standard Document Manager

NowCan structure IEEE StandardCan enter and edit text Is integrated with Model Manager

FuturePort LaTeX generators for PDF creation Integrate with Profile Editor (read-only snippets)

dim.prometheuscomputing.com

Side Story: Use Case Editor

Prototype Use Case Authoring ToolPurpose built for 11073

Terminology linked to Use Case Elements

Terminology sets could be used as keys into device profiles

Shelved for now

11073usecase.prometheuscomputing.com

beacon.prometheuscomputing.com

FY2015 Goals 1/2Make existing MyDevice features friendlier

Produce IEEE compliant PDF of Standard from web application

Produce conformance statements in machine readable and human-readable formats (XML, JSON, PDFs)

Refine Device Profile output artifacts based on stakeholder needs.Format(s) for round-trip profile data

FY2015 Goals 2/2Alert user when and where a device profile is not

in compliance with the DIM, 103xx, and/or Nomenclature

Facilitate user and group level access to individual device profiles in Profile Editor

Cordon off application features specific to SDO

Produce ‘Help’ documentation for Profile Editor

Distant Goals 1/2Finish Model Manager application (supplanting

MagicDraw)Easier useOutput model

Ability to add non-conformant attributes to objects within a device profile

Validate profiles against their parent profiles (e.g. a device specialization or use-case based profile)*

Distant Goals 2/2Extension of MyDevice to PHD devices

Tighter coupling between Profile Editor and RTMMS ?One login, mutual hyperlinksVerification of device profiles with respect to

nomenclature hierarchy

Integrate UML web application

Possibilities?Use Case Editor

Produce stand-alone desktop version of Device Profile Editor

Describe operational state?

Emulate message generation based on device profiles

Verify messages sent by devices