Station Type

advertisement
HealthVault Mirror Application
Environment Locations
Development environment for technical staff:
https://webapp3-dev.asu.edu/healthvault/
QA Testing Environment:
https://webapp3-qa.asu.edu/healthvault/
Live Production Server:
https://webapp3.asu.edu/healthvault/
The Development and QA environments integrate with Microsoft’s “PPE” HealthVault instance (“PPE” is
an abbreviation for “Pre-Production Environment”). This is separate from the production HealthVault
instance, so please note that health record data will not be the same as in production.
Document Conventions
All setup screens are password-protected (by ASURITE login) and require special access to the system.
These screens will be referred to as “admin”, “administrative”, or “staff”.
Screens that are available to anyone with an ASURITE login will be referred to as “public”.
Mouse click steps or actual text that should be typed will be denoted as follows. For example, if the
instructions call for clicking on the “Stations” link of the Configuration menu, it will read as:
Configuration | Stations
Application Overview
The HealthVault Mirror Application acts as a bridge between Microsoft’s HealthVault service and the
systems at ASU (notably, My ASU and a separate research database) that use health data provided by
HealthVault. The mirror application periodically retrieves health data from a HealthVault web service,
stores that information in its local database, and then makes that data available for use elsewhere,
primarily the activity indicators shown on My ASU (part of the Campus Services tab). This data transfer
includes some simple calculations, such as BMI (Body Mass Index). The mirror application only has
access to health data for persons that have authorized access to ASU via My ASU (that access can be
revoked via the HealthVault website). The overall process of retrieving this information is referred to as
synchronization, the result of which a local copy of data that “mirrors” what is available in HealthVault.
A second major function of the mirror application is to monitor weight kiosks or other “stations” that
provide data to HealthVault. Those stations do not provide health data (e.g., weight readings) directly
1
HealthVault Mirror App; version 1.0
April 2014
to the mirror application, but do communicate directly with the mirror application to provide their
status. This communication includes “pings” that are sent to the mirror application on a periodic basis so
that the online/offline status of the stations can be monitored. Some stations may also provide log files
to the mirror application for the purpose of troubleshooting problems.
For other information about HealthVault or ASU’s integration with HealthVault, please see the following:



https://www.healthvault.com/
The “Campus Services” tab on My ASU
(https://webapp4.asu.edu/myasu/student/campusservices)
https://active.asu.edu/
Application Permissions
An ASURITE login is required to access any of the screens in the mirror application. As of January 2014
there are no public screens, other than the application’s home page, so an additional role is required to
access any significant functionality.
There are two main roles in the mirror application: “Admin” and “Monitor”. These roles grant access to
the various screens described below. Admin users have access to all of the screens; users with the
“Monitor” role only have access to screens related to stations (including alert recipients).
Search
The search screens can be found from the left-side navigation menu. You must be signed-in to view the
search screens (see the section above about application permissions).
Associations
Search | Associations
An “association” identifies a HealthVault health record, and is used to track the synchronization status
on a per-record basis. The association contains a unique HealthVault record identifier in GUID format
(GUID’s appear as a long string of hexadecimal characters separated by hyphens). There is also a unique
person identifier; the person id identifies the person that authorized ASU to access the record. Both of
these ID’s are determined by HealthVault, not the mirror application. (Note that HealthVault allows a
person to potentially access multiple health records – their own health record plus records for others,
such as a spouse or child. However, only one of these health records will be available to ASU, based on
what the person chose while linking My ASU to HealthVault.)
Associations are not created or edited by the mirror application user interface (UI); this information is
created automatically in the mirror application as part of the synchronization process. The locally-stored
information includes timestamps that show when the health record was last updated in HealthVault (as
determined during the last synchronization) and the last time that data was synchronized into the mirror
app for that record. These two timestamps will generally be the same unless there has been no data
2
HealthVault Mirror App; version 1.0
April 2014
added to the health record (in that case you will possibly see timestamps where the time component is
5pm; this is an artifact of the synchronization process since the timestamps are stored relative to UTC,
initially at midnight of a prior date, but converted to Arizona time for display on the screen).
Record ID
A GUID to filter the associations by the HealthVault record id.
Person ID
A GUID to filter the associations by the HealthVault person id.
HV Date Modified
A date range for filtering associations by the date/time that the health record was last updated in
HealthVault. Either leave both textboxes blank or specify both a begin date and end date (the begin
date and end date can be the same to search for a single date).
HealthVault User Lookup
Search | HV Lookup
This search screen directly queries HealthVault for information about the health records that have been
authorized for access by ASU. It may show information that is not part of the associations.
Important: this screen provides access to sensitive information; it allows a particular health record to be
tracked to a particular person, which is generally not possible with the “association” data. Please treat
the results as confidential.
The search criteria are as follows:
Record ID
A GUID to filter the results by the HealthVault record id.
Person ID
A GUID to filter the results by the HealthVault person id.
Name
The name of the person to find records for; this can be a complete name or a partial name (the name is
matched by substring, not specifically the first name or last name).
The search results include the following information:
Name
The person’s name as it appears in HealtVault.
Person ID
The unique person identifier for the HealthVault user.
3
HealthVault Mirror App; version 1.0
April 2014
Primary Record
This field is a record identifier. The use of the term “primary” here is arbitrary; the value identifies a
health record that has been “selected” as the default record for the application, but the mirror
application doesn’t specifically use that selection. However, the id will likely match the record id in an
“association” entry, so in that sense it identifies the person’s HealthVault record for ASU.
Authorized Records
This is a subset of several related fields, as described below. There may be multiple authorized records,
displayed on separated rows, for a particular primary record. As mentioned above, a person may have
access to multiple health records, such as for a spouse and/or children; however, typically only one
record per person is authorized for ASU.
Name
A person’s name as it appears in HealthVault.
Record ID
A HealthVault record identifier.
Type
This shows the relationship between the person that authorized access to the health record and the
person that the record is for. In almost all cases this will be “Self”, since students will authorize access
only for their own health record; however, examples of other relationship types are “Spouse”, “Son” and
“Daughter” (this is not a complete list).
Auth Status
The authorization status is an indication of whether the application is allowed to access the health
record. (The significance of this status has not been fully evaluated, but “NoActionRequired” is the
typical value; other statuses might indicate that health data won’t be retrieved in synchronizations. For
the specific case where the person has removed ASU’s access to the record, the observed behavior is
that the record will no longer appear at all in the results of this lookup. Note, though, that the
association entry will still be available.)
State
This is a general state of the health record, not specific to the authorization for ASU. This value will
typically be “Active”, though other statuses may appear if the health record has recently been deleted in
HealthVault.
Job History
Search | Job History
The job history shows a log of system processes, especially those processes that interface with
HealthVault. This includes the “pull” process, which synchronizes data from HealthVault, and “push”,
which sends data to HealthVault. (As of January 2014 the app does not have any data to actually send
*to* HealthVault, other than certain data that can only be added by developers via separate testing
4
HealthVault Mirror App; version 1.0
April 2014
functionality. The production mirror app will not push any data to HealthVault.) Other jobs, such as
those used for system monitoring, do not currently log entries in this history.
Job Action
A drop-down selection for common job types. The default blank selection includes all jobs.
Status
Show all history entries, only those that indicate that a job failed, or only those for successful job runs.
Note that the filtering for failed jobs (indicated as “Not Successful”) is not an inclusive filter for specific
error statuses; it is simply the opposite of the “Successful” filter, excluding job runs that were successful
(I.e., the results might include multiple distinct status codes).
Message
This text value filters the job history using a substring match on the message associated with the job
entry, if any. Non-empty messages in the job history typically indicate an error.
Date
An optional date range to filter the job history according to the job start time. Either leave both
textboxes blank or specify both a begin date and end date (which can be the same value).
The search results include a unique identifier for the history entry, the timestamps for when the job
started and ended, the action (i.e., job type), a result status, an active indicator (whether the job is
currently running, or may still be running), and message. A message is typically only available for job
runs that failed. The “IP Address” and “Agent” fields provide information about what triggered the job.
The IP address will typically be in IPv4 format, but could be an IPv6 address. For job runs that are
triggered by users in the mirror application the Agent field will be a short code that identifies the
browser; where as an Agent value containing the string “Wget” usually indicates that the job was started
from a process that runs periodically.
Mirror
Search | Mirror
ASU’s copy of participating HealthVault data is referred to as “the mirror”. The data is local; stored at
ASU. This screen searches this mirror data. The results include information retrieved directly from
columns in the “hv_mirror” database table, as well as selected information extracted from an XML
payload received from HealthVault (specifically, an item name and item value, the contents of which will
vary depending on the type of item). Each of these mirror records is a particular data item from the
health record, such as a weight measurement or a summary of exercise activity for a particular day
(HealthVault refers to these items as “things”, so that term may appear in some places as well). Please
note that in the database table some datetime columns may have values represented in UTC while
others are in local Arizona time; however, the timestamps in the displayed results are converted to
Arizona time as necessary.
5
HealthVault Mirror App; version 1.0
April 2014
Record ID
A GUID to filter the results by the HealthVault record id.
Person ID
A GUID to filter the results by the HealthVault person id.
App ID
A GUID to filter the results by which application sent the item to HealthVault. Common values that may
be useful are listed below:



42dbc881-6833-439a-b91b-52307a68f230
This is an application identifier for ASU. For example, weight readings sent from the weight kiosk
will be associated with this identifier.
9ca84d74-1473-471d-940f-2699cb7198df
This application identifier, shown as “Microsoft Health Explorer”, is for data entered directly in
the HealthVault website.
f30edae4-0cd3-4585-b27a-2f0dcdd17ba1
This application identifier can be used to find Kersh KAM exercise items.
Text Search
An optional list of keywords, separated by spaces, to search for in the text of the XML payload. This does
not do any special processing on the xml; the xml payload is simply converted to a text string prior to
doing the search.
Date Modified
A date range for filtering items by the timestamp of when the item was created/updated in HealthVault.
To search for a single date specify the same value for both the begin date and end date.
The results can be ordered by the person identifier, record identifier, synch timestamp (i.e., when the
item was pulled into the mirror application), or the HealthVault timestamp for the item.
Note that the results provide a hyperlink to a separate screen that shows the details of a single mirror
record. The detail information includes the same information shown in the search results, as well as the
xml payload. Within the xml, the “data-xml” node shows the detailed item information, which will vary
based on the type of the item (e.g., weight reading, height measurement, exercise data, etc.).
Push Queue
Search | Push Queue
The push queue is a temporary holding location for data values that are to be sent to HealthVault. The
push queue is usually (or always) empty. The push queue can hold items for health records that have not
6
HealthVault Mirror App; version 1.0
April 2014
yet been linked to My ASU, so the record id and person id may not be available; such entries will remain
in the queue until the record is linked or until the queue entry is deleted by a user of the mirror app.
You can see the xml content of a queue entry in the search results by placing the mouse cursor over the
item name.
Record ID
A GUID to filter the results by the HealthVault record id. There may be entries in the queue that don’t
have an available record id.
Person ID
A GUID to filter the results by the HealthVault person id. There may be entries in the queue that don’t
have an available person id.
Stations
Search | Stations
This screen shows a list of stations that have been configured in the mirror application. Stations include
devices such as weight kiosks. There are hyperlinks to add a new station (on the right side of the page)
or edit existing ones.
The search criteria are as follows:
Name
The name filter matches either the configured station name or the actual machine name (these two
names are usually the same; see the configuration section for additional information).
Station Type
This is a multi-select drop-down list for the type of station; e.g., Weight Kiosk. Note that the list of
available station types is configurable; see the configuration section for additional information.
Active Status
This filters on the Show/Hide setting of each station.
The search results include the following information:
ID
This is a unique numeric identifier that is assigned by the system when a new station is configured.
Name
The name of the station, typically the same as the name of the machine (see the configuration section
for information on these names).
Type
The type of station; e.g. Weight Kiosk.
7
HealthVault Mirror App; version 1.0
April 2014
Status
The status displayed here is one of the following:





Online. This status means that a “ping” request has been received within the last 30 minutes.
Pings are short status messages that the stations send on a periodic basis to the mirror
application to indicate that the station is operational.
Degraded. The last ping received was at least 30 minutes ago but less than 45 minutes. This
status is an indication that the station’s operational state may have recently changed.
Offline. The last ping received was at least 45 minutes ago.
Inactive. There has been no recent ping request and the station’s Show/Hide setting is set to
“Hide”.
(blank). The displayed status is blank if there has been no ping request (recent or otherwise)
and the station’s Show/Hide setting is set to “Show". This condition likely indicates that the
station is new, and is either not running yet or hasn’t been configured correctly to send a
successful “ping”.
Note that the minute boundaries listed above for evaluating the age of the last ping are subject to
change. These cutoffs were chosen based on the default interval that stations such as weight kiosks use
to send the periodic ping requests (every 15 minutes, though that is also subject to change), and, to a
lesser degree, because of the fact that a station monitoring process to send email alerts likely runs once
an hour. The cutoff for stations to be considered online has to be higher than this default interval.
Last Ping
The date and time that the last ping request was received.
Elapsed
The difference, in minutes, between the date/time of the last ping and the current time.
Last Reading
For weight kiosks, this is the date and time that the kiosk last sent a weight reading successful y to
HealthVault. This timestamp is sent as part of the ping requests. Note, however, that this value is not
saved by the station when the machine is rebooted, so no value will be available if there has not been a
weight reading since the last time the machine was rebooted (which might happen on a daily basis).
Machine Name
This value is updated when a ping is received to indicate which machine was the source, but this value
may also get updated by the station edit page; see the configuration section for additional details.
IP Address
The IPv4 or IPv6 network address of the machine that sent the last ping for this station.
There is also a “Delete” link on each row to delete a station record, available to admin users only (i.e.,
not to users that only have the “Monitor” role). Clicking a delete link will show a confirmation prompt
before actually deleting the station record.
8
HealthVault Mirror App; version 1.0
April 2014
Station Logs
Search | Station Logs
The station logs shown here are log files that were uploaded from stations. These log files can be used
to troubleshoot problems with a particular station. Note that the some stations may not be able to keep
log files for a significant amount of time, so the log files can be uploaded to the mirror app for storage.
The search criteria are as follows:
Name
The name filter matches either the configured station name or the actual machine name (these two
names are usually the same; see the configuration section for additional information).
Station Type
This is a multi-select drop-down list for the type of station; e.g., Weight Kiosk. Note that the list of
available station types is configurable; see the configuration section for additional information.
Date
Date range filter for the timestamp that the log files were uploaded. This can be different than the date
that the log file was actually written by the station, which will be indicated in the name of the file. To
search for a single date specify the same value for both the begin date and end date.
The search results include the following information:
ID
This is a unique numeric identifier that is assigned by the system when the file is received.
File Name
The name of the log file as provided by the station. Note that this value is also a hyperlink to show the
details of the upload, including the content of the file.
File Size
The number of bytes that were uploaded for this file.
Station
The name of the station that uploaded the file.
Upload Timestamp
The date and time of when the mirror app received the file.
Users
Search | Users
This shows a list of accounts for people that have access to this application. Most of this is similar to the
“Persons” or “Users” screens available in other applications. Note that the link to add a new user is on
the right side of the page.
9
HealthVault Mirror App; version 1.0
April 2014
Configuration
The configuration screens can be found from the left-side navigation menu. You must be signed-in to
view the configuration screens (see the section above about application permissions).
Alert Recipients
Configuration | Alert Recipients
This screen shows a list of recipients for system status alerts. Alerts are sent when the status of one or
more stations changes, such as from “Online” to “Offline”. The process that sends the alerts runs on a
periodic basis, such as once an hour. Note that alert recipients are configured for a group of stations
according to their station type, not individual stations.
Configuration | Alert Recipients | Add new recipient
This link to add a new recipient entry appears on the right side of the Alert Recipients screen. Several of
the settings for recipient entries control how the email messages are constructed.
To Name
The recipient’s name or a name associated with the recipient’s email address.
Email
The email address of the recipient. Note that this value has no direct relationship with the email address
for user accounts; recipients don’t even need to be configured as users in the mirror application.
From Name
The name of the sender as it will appear to the recipient. This doesn’t need to be the name of a person;
this can be any suitable name, such as “ASU HV Mirror App”.
Station Type
The type of station for which this recipient will receive alerts. Only one type can be selected, but you can
create other recipient entries with the same email information to configure alerts for multiple types.
Show/Hide
This setting is an active flag that determines whether the recipient will receive alerts. It does not affect
visibility on the admin screens.
Mirror Settings
Configuration | Mirror Settings
This setting shows a grid of name/value pairs for settings that affect the mirror synchronization process.
Click the “Edit” button in the row of a particular setting to change its value; this will place the row in edit
mode, after which you can click “Update” to save a change to the value or “Cancel” to undo it (the name
of the setting is read-only). There’s a row at the bottom of the grid for adding new settings.
10
HealthVault Mirror App; version 1.0
April 2014
CAUTION: changing these settings can have significant impacts on the synchronization process. DO NOT
change the value of a setting unless you understand the impact.
The following is a list of the available settings. Disclaimer: this may not be a complete list and is not
intended as a complete explanation of their usage.
Name
appid
Description
The application identifier that the mirror application uses when
communicating with HealthVault.
DO NOT change this value.
audits_purge_cutoff
The number of days to keep entries in the job history. Entries older than the
date derived from this cutoff will be deleted when the synchronization runs.
A zero or negative value will disable this cleanup.
audits_update_orphans
Boolean value entered as an integer (1 means true, 0 means false). If a job,
such as the “pull” synchronization job, does not complete normally there’s a
possibility that the history entry will be stuck, showing that the job is active
when it actually isn’t currently running. This setting controls whether those
orphaned entries are automatically updated to an inactive status after an
implementation-defined timeout elapses (the timeout in this case is a
certain number of minutes). The job history will show a special status and
message for those entries that are updated as a result of this cleanup.
autocreate_associations
Boolean value (1 or 0). Determines whether the pull synchronization will
create “association” entries for health records that it has not previously
encountered. This value should be left as 1 (true); otherwise, health records
that are newly-linked from My ASU will not have data available.
calc_biometrics
This is an integer value that represents a calculation mode; it determines
whether biometrics data is updated at the end of the synchronization from
HealthVault. A value of 0 indicates that the calculation is disabled; a value
of 1 or 2 enables the calculation. For mode 1 the calculation will only be
performed if new health data is available; in mode 2 the calculation will be
performed for every synchronization even if no new data is available.
last_marked
The synchronization process uses this date/time value to determine what
new data to retrieve. This timestamp is not directly tied to the current time,
however; the value is the latest update timestamp of whatever data has
already been synchronized.
last_validated
This date/time value is similar to “last_marked”; however, it applies to a
different synchronization process that ASU is not using.
lookback_days
The number of days back to query data from Healthvault. This does not
affect the retrieval of new data; it is used to re-query older data to
determine what items have been removed from a health record (items
removed in HealthVault are removed from the mirror database as part of
the synchronization). The value determines a cutoff date for the query; the
date is relative to the most-recent update timestamp for a particular health
record.
lookback_days_bootstrap A number of days used to determine a cutoff date for the HealthVault
query. This setting is related to “lookback_days”, but is only used as a
default in case the normal lookback date can’t be determined (this happens
11
HealthVault Mirror App; version 1.0
April 2014
platform_url
shell_url
tracking_data_only
type_list
verbose_output
when no data has been obtained for a particular health record).
This is the HealthVault web service address. Note that there is a similar
setting in the application’s configuration file; the values should be the same
and correct for the particular environment.
This is another HealthVault address; however, it is not relevant for the
mirror app.
This is a Boolean value (1 or 0) that determines whether the mirror records
have detailed item information. Setting it to 1 (true) will disable storage of
the xml payload and other information. However, this may cause the
synchronization to fail or would have other impacts. DO NOT change this
value.
This is a comma-separated list of type identifiers. Each HealthVault item
(e.g., weight reading, exercise information, blood pressure reading, etc.) has
a unique type identifier; this list determines which types are actually
queried during the synchronization. For information on the available types
go to the HealthVault Development Center:
http://developer.healthvault.com/pages/types/types.aspx
This is a Boolean value (1 or 0) that determines how much information is
generated in the web page output when the synchronization process runs;
setting it to 1 will add more detailed information. This has no impact on the
level of information stored in the database.
Stations
Configuration | Stations
This shows a non-filtered list of stations. See the search section above for more information about the
displayed results.
Configuration | Stations | Add Station
This link to add a new station appears on the right side of the Stations screen.
Station Name
Enter the name of the station.
Important: you must enter the machine name. The original design of this field was for it to be the
machine name or some other user-determined name; however, in the current implementation this
value MUST be the machine name. Internally there is both the station name and a machine name;
however, the edit page updates both internal fields from this one field on the form when the station is
saved. Using a value other than the machine name will prevent the station from communicating
successfully with the mirror app (e.g., for ping requests or log file uploads).
Station Type
Select a station type (e.g., Weight Kiosk) from the drop-down list.
12
HealthVault Mirror App; version 1.0
April 2014
Access Code
This is a required password used to verify that messages from stations (e.g., ping requests) are coming
from an authorized source. The same value must be provided in the station’s configuration file. It is
recommended that the value be at least 20 characters long (maximum length is 50 characters).
Additional information about the access codes may be available in separate setup documentation for
the station software; e.g., for the weight kiosks.
Send Monitor Alerts
This checkbox determines whether this station is included in station monitoring. When this box is
checked, email alerts will be generated for configured recipients when the status of the station changes
(e.g., when it goes offline).
Show/Hide
This active flag determines the visibility of the station on certain screens (such as the Station Monitor)
and whether the station is included when generating email alerts for status changes.
Station Types
Configuration | Station Types
Each station has an associated type; for example, there is a type entry for weight kiosks. The list shown
on this screen shows a unique numeric identifier assigned when a type entry is created, along with other
properties of the type.
Configuration | Station Types | Add new station type
This link to add a new station type appears on the right side of the Station Types screen.
Type Name
This is the admin name for the type. It may be used on administrative screens or have other internal
uses.
Display Name
The name of the type as it will typically appear on other screens.
Show/Hide
This setting is an active flag that determines whether the type is included in type lists on other screens,
such as the type filters on the search screens. It does not affect visibility on the admin screens.
Users
Configuration | Users
This shows a list of accounts for people that have access to this application. Most of this is similar to the
“Persons” or “Users” screens available in other applications. Note that the link to add a new user is on
the right side of the page.
13
HealthVault Mirror App; version 1.0
April 2014
Control Panel
The control panel can be found from the left-side navigation menu. It is only available to admin users.
The control panel provides a way to run certain system processes that normally run behind-the-scenes,
such as hourly jobs; the control panel allows those processes to be run at any time. Click the link
corresponding to which process you would like to run; it will be started immediately and you will be able
to see the output.
These manual job runs are not processed any differently than normal (aside from a security check, which
in this case is based on the ASURITE login), so the job run will still be recorded in the job history (for
processes that normally record a history entry) and email notifications for job failures will be sent as
needed. Also, the control panel does not prevent the process from running a second time if it happened
to already be running through other means, so there is a possibility of concurrent job executions. This
may cause problems that would not normally occur, so try to avoid running processes around their
scheduled time (such as in the first few minutes of the hour).
Control Panel | Send system status alerts
This runs the station monitor that sends email alerts when a station’s status changes.
Control Panel | Pull items from HealthVault
This runs the mirror synchronization process to retrieve data from HealthVault.
Control Panel | Push items to HealthVault
This sends items in the push queue to HealthVault.
Job History
Job History
This link in the navigation menu shows a list of the most-recent entries in the job history (up to a certain
number of entries to limit the results to a single page, but otherwise not filtered).
Station Monitor
Station Monitor
This link shows a screen that is similar to the station search results; see the search section above for
additional details. There a few differences from the search screen, however, because this screen is
primarily intended for viewing only instead of accessing configuration (though it isn’t limited to that).
This screen automatically refreshes periodically (e.g., every 30 seconds). Inactive stations (“Show/Hide”
set to “Hide”) are excluded, and the “Delete” links are not provided on this page.
14
HealthVault Mirror App; version 1.0
April 2014
Error Logs
“Exception” errors encountered by the application are usually recorded in the database (unless, of
course, there is a problem connecting to the database). The screens here allow viewing and deleting of
error log entries.
Error Logs | Search Logs
There are various search criteria on this screen (not described in detail here); click the Search button to
see the results. Tip: the date range filter is optional, but if you specify a range, make sure that you
specify both a begin date and end date; and the end date may need to be one day later than the last day
that you wish to include in the range (this is a side-effect of how the query is written, and is different
than the other search screens).
Error Logs | View All
This link bypasses the criteria page and shows all active log entries (i.e., those that haven’t been updated
to be hidden).
15
HealthVault Mirror App; version 1.0
April 2014
Download