SOFTWARE DEVELOPMENT PROJECT
ASSIGNMENT 1: SOFTWARE SPECIFICATION DOCUMENT
Ahmad Helmi (20/454524/PA/19555)
Kavindra Alaika Ahmad (20/457771/PA/19809)
Dzaki Dzikril Hakim (20/454530/PA/19561)
DEPARTMENT OF COMPUTER SCIENCE AND ELECTRONICS
FACULTY OF MATHEMATICS AND NATURAL SCIENCES
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2022
TABLE OF CONTENTS
1. Preface …………………………………………………………………………………… 2
2. Introduction ……………………………………………………………………………… 2
3. Scope …………………………………………………………………………………….. 2
4. Glossary …………………………………………………………………………………. 3
5. User Requirement Definition ……………………………………………………………. 4
6. Architecture ……………………………………………………………………………… 4
7. System Requirements ……………………………………………………………………. 5
8. System Model …………………………………………………………………………… 5
9. System Evaluation ………………………………………………………………………. 6
10. Bibliography …………………………………………………………………………….. 6
1
1. Preface
This project aims to further develop the profiling and authoring features and improve the
user-friendliness of the FHIR interactive visualisation tool developed in the study "An
Interactive Visualization Tool for HL7 FHIR Specification Browsing and Profiling"
conducted by Na Hong, Kui Wang, Sizhu Wu, Feichen Shen, Lixia Yao, and Guoqian Jiang.
2. Introduction
The FHIR specification is relatively difficult to understand and utilise due to complex
semantic representation and structure definition. "An Interactive Visualization Tool for HL7
FHIR Specification Browsing and Profiling" was developed as a result. The intention was to
provide tooling support in model browsing and interactive authoring for FHIR models to help
FHIR users better understand and utilise the specification. It seeks to complement the
HTML-based browsing method provided by HL7 by providing more interactive features.
However, the current implementation of the product has some limitations; more advanced
features, such as profiling and authoring are yet to be implemented completely. In addition,
according to the product evaluation, there is a limitation regarding user orientation. In this
project, we will attempt to implement more advanced profiling and authoring features (such
as concept mapping and profile registering) and improve on the user-friendliness by
providing more information to help guide users to better understand FHIR models.
3. Scope
Our software is expected to provide features available in the current implementation of the
interactive visualisation tool, which includes: FHIR resources, profile, and extension
browsing, and FHIR profile and extension creation.
Although we plan to implement more features, our priority is to improve on the user
orientation aspects, as we believe a software friendly to users is of utmost importance, given
how complex the FHIR specification already is. We also feel that the basic profiling and
authoring features in the current implementation are already sufficient for most applications.
2
4. Glossary
Term Definition
FHIR (Fast Healthcare Interoperability Resources) An interoperability standard for exchanging
electronic health records, developed by the HL7
(Health Level Seven or HL7) organisation.
HL7 (Health Level Seven or HL7) A set of international standards for exchanging
electronic health records. The HL7 International
organisation developed FHIR.
FHIR resources Represent categories in which health care data is
broken down into (eg. person, medication, and
insurance plan). It defines data elements, constraints,
and relationships that when combined, make up an
exchangeable patient record.
FHIR profiles A feature which allows users to customise resources
by specifying constraints and/or extensions on the
base resource. It is essentially a group of Structure
Definitions, Value Sets, and examples, that are
defined with a common purpose.
FHIR extensions Parts of FHIR profiles that extend usage and data
types of FHIR core resources.
D3.js (Data Driven Document) A JavaScript library for manipulating documents
based on data. It allows for the creation of custom
interactive data using HTML, SVG, and CSS.
HAPI FHIR (HL7 Application Programming A complete implementation of FHIR in Java. It is an
Interface FHIR) API (Application Programming Interface).
JQuery A JavaScript library which simplifies HTML
document traversal and manipulation, event
handling, and animation.
3
5. User Requirements Definition
The software caters to FHIR model researchers and implementers. Our focus on user
orientation makes the software especially friendly for new FHIR users. However, users are
expected to at least understand the basic concepts of FHIR specifications. To access the
software, users need to have access to an electronic device and internet connection.
6. Architecture
The developments we plan to make will not alter the original architecture. Therefore our
software architecture follows that of the current implementation. It follows the following
structure: FHIR specification, user interaction, and clinical contexts of use. Users interact by
performing visualised browsing, visualised profiling, and extension defining. Visual FHIR is
implemented to convey FHIR contents graphically. The architecture depicted below:
4
7. System Requirements
The software’s operating system will need these specifications to run optimally: D3.js which
is the javascript library. It also needs the FHIR resources, profiles, and extensions.FHIR
resources can be adapted to define rules and requirements based on the context used. FHIR
profiling allows users to customise resources by specifying constraints and/or extensions on
the base resource. FHIR profile can therefore be defined as a group of Structure Definitions,
Value Sets, and examples, that are defined with a common purpose. FHIR extensions allow
for the inclusion of data that are not defined in the FHIR core resources. For instance, race,
ethnicity, and nationality are defined as extension elements. In a given resource, they can be
used to define new elements or extend data in a defined element. Extensions are parts of
FHIR profiles that extend usage and data types of FHIR core resources.
8. System Model
The software will provide the same features as the previous implementation: FHIR resources,
profile, and extension browsing, and FHIR profile and extension creation. Therefore, the
software model will also follow a similar structure. We will implement D3.js to create
graphical representation of the data, HAPI FHIR to ensure that user-customised profiles and
extensions satisfy the FHIR specification, and JQuery to support interactive functions.
For browsing FHIR resources, FHIR schema resources are parsed. Schema is automatically
parsed to obtain the Uniform Resource Identifiers (URIs) by following the "$ref" element in
the JSON schema. The elements of each schema are then found by parsing another element
of the JSON schema, "properties". Functions d3.layout.tree and d3.svg.diagonal are then
used to construct the tree graphs for the schema.
The mechanism for browsing FHIR profile or extension is similar to that for browsing FHIR
resources.Structure of StructureDefinition file is parsed to obtain the elements under
"snapshot" node. Parsing node property "path" gives the relations between nodes in the tree.
Function d3.layout.tree and d3.svg.diagonal are used to construct the tree graphs, and
function d3.layout.force is used to create the relation graph.
5
The module for creating FHIR profiles and extensions allow for basic functions, such as:
changing cardinality, removing elements useless to the use case context, and adding use case
extensions. HAPI FHIR is used to evaluate the user-customised profiles and extensions.
9. System Evaluation
To determine the utility, the software will be evaluated along with the model from the
previous study, applying the same metrics used in said study; metrics that assess interactive
mechanism and cognitive complexity. Interactive mechanism includes the following criteria:
speed of response, navigation and manipulation, and user orientation. Cognitive complexity
includes: content expressiveness, learning easiness, and supported display types. Participants
will be asked to rate each criteria of both implementations from a scale of 1 to 4 (4, excellent;
3, good; 2, fair; 1, poor). The results will then be compared to determine whether our
implementation has improved on the limitations of the current system.
10. Bibliography
1. N. Hong, K. Wang, S. Wu, F. Shen, L. Yao, G. Jiang, "An Interactive Visualization Tool for HL7 FHIR
Specification Browsing and Profiling," J Healthc Inform Res., vol. 3, no. 3, pp. 329-344, Sep.2019.
Accessed Nov. 08, 2022. doi: 10.1007/s41666-018-0043-8. [Online]. Available:
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6784845.
2. "Introduction to FHIR Resources," healthit.gov.
https://www.healthit.gov/sites/default/files/page/2021-04/Intro%20to%20FHIR%20Resources%20Fact%20
Sheet.pdf (accessed Nov. 08, 2022).
3. M. Ruten, "FHIR Profiles and Implementation Guides," fire.ly.
https://fire.ly/blog/fhir-profiles-and-implementation-guides (accessed Nov. 08, 2022).
4. E. Yesakov, "What are FHIR Profiles," kodijin.com. https://kodjin.com/blog/what-are-fhir-profiles
(accessed Nov. 08, 2022).
5. "HL7 FHIR Extensions," lyniate.com. https://lyniate.com/resources/hl7-fhir-extensions (accessed Nov. 08,
2022).
6. “Data Driven Documents,” d3js.org. https://d3js.org (accessed Nov. 11, 2022).
7. “HAPI FHIR,” hapifhir.io. https://hapifhir.io (accessed Nov. 11, 2022).
8. “JQuery: Write Less, Do More,” jquery.com. https://jquery.com (accessed Nov. 11, 2022).