From 8c4530036d5d0d0645fb4014ba164892107c0c74 Mon Sep 17 00:00:00 2001 From: Mutesasira Moses Date: Mon, 1 Jul 2024 17:53:37 +0300 Subject: [PATCH] Add functional and non-functional requirements (#25) --- input/fsh/requirements/HIV.A.fsh | 153 +++++++ input/fsh/requirements/HIV.B.fsh | 97 ++++ input/fsh/requirements/HIV.C.fsh | 41 ++ input/fsh/requirements/HIV.D.fsh | 48 ++ input/fsh/requirements/HIV.G.fsh | 13 + input/fsh/requirements/HIV.H.fsh | 27 ++ input/fsh/requirements/HIV.I.fsh | 48 ++ input/fsh/requirements/HIV.J.fsh | 27 ++ input/fsh/requirements/HIV.Non_Functional.fsh | 415 ++++++++++++++++++ input/pagecontent/functional-requirements.md | 2 +- sushi-config.yaml | 3 +- 11 files changed, 871 insertions(+), 3 deletions(-) create mode 100644 input/fsh/requirements/HIV.A.fsh create mode 100644 input/fsh/requirements/HIV.B.fsh create mode 100644 input/fsh/requirements/HIV.C.fsh create mode 100644 input/fsh/requirements/HIV.D.fsh create mode 100644 input/fsh/requirements/HIV.G.fsh create mode 100644 input/fsh/requirements/HIV.H.fsh create mode 100644 input/fsh/requirements/HIV.I.fsh create mode 100644 input/fsh/requirements/HIV.J.fsh create mode 100644 input/fsh/requirements/HIV.Non_Functional.fsh diff --git a/input/fsh/requirements/HIV.A.fsh b/input/fsh/requirements/HIV.A.fsh new file mode 100644 index 0000000000..9ec54f7f2b --- /dev/null +++ b/input/fsh/requirements/HIV.A.fsh @@ -0,0 +1,153 @@ +Instance: HIV.A.Registration +InstanceOf: Requirements +Title: "Registration" +Description: "Functional Requirements For Registration" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.001" + * requirement = """ + As a Health worker or data entry clerk + I want to ensure that the privacy and confidentiality of clients are assured + So that clients’ rights and safety are protected and the facility is in compliance with any relevant international or local data protection policies + """ +* statement[+] + * key = "HIV.FXNREQ.002" + * requirement = """ + As a Health worker or data entry clerk + I want to search to see whether client is already in the system + So that I can check whether this is a new or existing client + """ +* statement[+] + * key = "HIV.FXNREQ.003" + * requirement = """ + As a Health worker or data entry clerk + I want the system to require me (a user) to search to see whether a client is already in the system prior to starting a new medical record entry + So that I can confirm that it is the correct client and update information as necessary + """ +* statement[+] + * key = "HIV.FXNREQ.004" + * requirement = """ + As a Health worker or data entry clerk + I want the system to be able to work offline + So that I can carry on care service provision regardless of internet connection. Once the system goes back online, the data is synchronized with the central system + """ +* statement[+] + * key = "HIV.FXNREQ.005" + * requirement = """ + As a Health worker or data entry clerk + I want to provide sufficient data to rule out the possibility that this client is already in the system + So that I can avoid duplicates + """ +* statement[+] + * key = "HIV.FXNREQ.006" + * requirement = """ + As a Health worker or data entry clerk + I want to enter a temporary identification in situations when full identity unknown + So that I can proceed with registration + """ +* statement[+] + * key = "HIV.FXNREQ.007" + * requirement = """ + As a Health worker or data entry clerk + I want to edit fields on screen before information is committed + So that I can ensure information has been checked before submission + """ +* statement[+] + * key = "HIV.FXNREQ.008" + * requirement = """ + As a Health worker or data entry clerk + I want to generate encounter number for contact + So that I can initiate the required care services + """ +* statement[+] + * key = "HIV.FXNREQ.009" + * requirement = """ + As a Health worker or data entry clerk + I want to generate or associate to existing facility medical record number + So that I can check and confirm the information + """ +* statement[+] + * key = "HIV.FXNREQ.010" + * requirement = """ + As a Health worker or data entry clerk + I want to record if a client consents to follow-up + So that the client’s privacy regarding follow-up is protected + """ +* statement[+] + * key = "HIV.FXNREQ.011" + * requirement = """ + As a Health worker or data entry clerk + I want to update the type of setting where care is being provided (in the community or facility) + So that I can track where and in what settings cases are being identified (used for indicator HTS.2 HTS test volume and positivity) + """ +* statement[+] + * key = "HIV.FXNREQ.012" + * requirement = """ + As a Health worker or data entry clerk + I want to be able to flag when a client wishes to be contacted with a reminder + So that the client can be better supported to remain in care. + """ +* statement[+] + * key = "HIV.FXNREQ.013" + * requirement = """ + As a Programme manager + I want to ensure the system prompts the health worker to get informed consent from the client + So that jurisdictional requirements are adhered to and clients’ rights are protected + """ +* statement[+] + * key = "HIV.FXNREQ.014" + * requirement = """ + As a Health worker or data entry clerk + I want to be able to update demographic information + So that the most current information on client can be recorded + """ +* statement[+] + * key = "HIV.FXNREQ.015" + * requirement = """ + As a Health worker or data entry clerk + I want to retain previous history of updated information + So that I can review past information + """ +* statement[+] + * key = "HIV.FXNREQ.016" + * requirement = """ + As a Health worker or data entry clerk + I want , if this is a returning contact, to add the information to their previous contact + So that I can link the information across different contacts + """ +* statement[+] + * key = "HIV.FXNREQ.017" + * requirement = """ + As a Health worker or data entry clerk + I want to be able to update the client history from client-held records + So that the clients' history of HIV care can be available when they go to other facilities (for example, transfer, hospital, TB clinic) if history or transfer information is not available from past facilities directly. + """ +* statement[+] + * key = "HIV.FXNREQ.018" + * requirement = """ + As a Health worker or data entry clerk + I want to record a time-and-date-stamped new contact (encounter) + So that I can confirm when the client came + """ +* statement[+] + * key = "HIV.FXNREQ.019" + * requirement = """ + As a Health worker or data entry clerk + I want to be able to attach a unique identifier (without using name, address, or other personal information) to the client's record based on national standards consent + So that I have additional ways of identifying client. + """ +* statement[+] + * key = "HIV.FXNREQ.020" + * requirement = """ + As a Health worker + I want to have the ability to “check in” a client for a scheduled contact + So that I can initiate services at client contact + """ +* statement[+] + * key = "HIV.FXNREQ.021" + * requirement = """ + As a Health worker or data entry clerk + I want to provide a list or roster of all clients due to arrive + So that I know which clients to follow-up or are due for services + """ diff --git a/input/fsh/requirements/HIV.B.fsh b/input/fsh/requirements/HIV.B.fsh new file mode 100644 index 0000000000..9381d7d1ab --- /dev/null +++ b/input/fsh/requirements/HIV.B.fsh @@ -0,0 +1,97 @@ +Instance: HIV.B.HIVtestingservices +InstanceOf: Requirements +Title: "HIV testing services" +Description: "Functional Requirements For HIV testing services" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.022" + * requirement = """ + As a Health worker + I want to identify the date of the last attended contact + So that I can ensure the client is receiving services according to recommended schedule + """ +* statement[+] + * key = "HIV.FXNREQ.023" + * requirement = """ + As a Health worker + I want the system to highlight abnormal values + So that I can identify critical health issues or errors (if a data-entry issue) + """ +* statement[+] + * key = "HIV.FXNREQ.024" + * requirement = """ + As a Health worker + I want to see which clinical staging conditions or symptoms the client has already experienced + So that the information may be used to help classify the client’s HIV disease severity. + """ +* statement[+] + * key = "HIV.FXNREQ.025" + * requirement = """ + As a Health worker + I want the system to provide real-time range checks and integrity checks on data + So that I can ensure entry of accurate information and reduce errors + """ +* statement[+] + * key = "HIV.FXNREQ.026" + * requirement = """ + As a Health worker or data entry clerk + I want to record the HIV status of partners or family members of clients, with proper consent + So that I can provide specialized care (for example, in serodiscordant couples) + """ +* statement[+] + * key = "HIV.FXNREQ.027" + * requirement = """ + As a Health worker + I want to review past medical history previously entered + So that I can provide appropriate services according to the latest clinical protocols + """ +* statement[+] + * key = "HIV.FXNREQ.028" + * requirement = """ + As a Health worker or data entry clerk + I want to have different question and language prompts when clients are from different populations + So that I can better support populations such as adolescents, paediatric clients and caregivers and their unique needs. + """ +* statement[+] + * key = "HIV.FXNREQ.029" + * requirement = """ + As a Health worker + I want a list of tests that I (the health worker) can order + So that I can provide appropriate services according to the latest clinical protocols + """ +* statement[+] + * key = "HIV.FXNREQ.030" + * requirement = """ + As a Health worker + I want to print a requisition for lab tests, which includes required information for performing the test + So that I can provide the client with list of test required + """ +* statement[+] + * key = "HIV.FXNREQ.031" + * requirement = """ + As a Health worker + I want the system to suggest appropriate treatments/investigations based on data entered + So that I can provide appropriate services according to the latest clinical protocols + """ +* statement[+] + * key = "HIV.FXNREQ.032" + * requirement = """ + As a Health worker + I want to see where I can refer clients for specialized counselling that I’m not qualified to provide + So that I can direct clients to where they can get the confidential and sensitive support they need + """ +* statement[+] + * key = "HIV.FXNREQ.033" + * requirement = """ + As a Health worker + I want to see a schedule of available days + So that I can notify the client when to return for subsequent contact + """ +* statement[+] + * key = "HIV.FXNREQ.034" + * requirement = """ + As a Health worker + I want to have the system automatically calculate the date when the client should return for care based on, for example, risk, prevalence or clinical stability + So that I do not have to calculate this myself + """ diff --git a/input/fsh/requirements/HIV.C.fsh b/input/fsh/requirements/HIV.C.fsh new file mode 100644 index 0000000000..4da1959c14 --- /dev/null +++ b/input/fsh/requirements/HIV.C.fsh @@ -0,0 +1,41 @@ +Instance: HIV.C.PrEPvisit +InstanceOf: Requirements +Title: "PrEP visit" +Description: "Functional Requirements For PrEP visit" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.035" + * requirement = """ + As a Health worker + I want to be prompted to ask about conditions which would exclude a client from certain services + So that clients are not provided with services that may not be safe for them + """ +* statement[+] + * key = "HIV.FXNREQ.036" + * requirement = """ + As a Health worker + I want to log the reason a client is not medically eligible for a method + So that the next provider has this information, client safety is better protected, and on a future visit it is easier to check whether a client is now eligible + """ +* statement[+] + * key = "HIV.FXNREQ.037" + * requirement = """ + As a Health worker + I want to be alerted if a client was previously not eligible for a method + So that I do not have to search through records, given I have limited time + """ +* statement[+] + * key = "HIV.FXNREQ.038" + * requirement = """ + As a Health worker + I want to have flexibility to perform screenings and clinical activities based on my clinical judgment + So that I can screen clients for recommended, desirable or other tests in an efficient way + """ +* statement[+] + * key = "HIV.FXNREQ.039" + * requirement = """ + As a Health worker + I want to be able to input custom schedules to allow for contacts on specific days and times, account for holidays, etc + So that I can inform the client of their next contact + """ diff --git a/input/fsh/requirements/HIV.D.fsh b/input/fsh/requirements/HIV.D.fsh new file mode 100644 index 0000000000..b00a72e309 --- /dev/null +++ b/input/fsh/requirements/HIV.D.fsh @@ -0,0 +1,48 @@ +Instance: HIV.D.Careandtreatmentclinicalvisit +InstanceOf: Requirements +Title: "Care and treatment clinical visit" +Description: "Functional Requirements For Care and treatment clinical visit" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.040" + * requirement = """ + As a Health worker + I want to have access to clients’ ART history in one place + So that I can support clients with adherence and ensure their regimens are working. + """ +* statement[+] + * key = "HIV.FXNREQ.041" + * requirement = """ + As a Health worker + I want to have access to key test results in one place, such as viral load and CD4 counts + So that I can better monitor how a client is responding to treatment. + """ +* statement[+] + * key = "HIV.FXNREQ.042" + * requirement = """ + As a Health worker + I want to see which criteria in the decision logic was met to indicate possible treatment failure + So that I can review additional criteria not in the digital record and make a clinical judgment + """ +* statement[+] + * key = "HIV.FXNREQ.043" + * requirement = """ + As a Health worker + I want to be able to expedite diagnostic orders + So that clients who may have urgent care needs can be identified, such as infants with HIV + """ +* statement[+] + * key = "HIV.FXNREQ.044" + * requirement = """ + As a Health worker + I want to have additional screenings and diagnostics recommended based on the medications the client is being prescribed + So that the necessary screenings and diagnostics are identified during the visit. + """ +* statement[+] + * key = "HIV.FXNREQ.045" + * requirement = """ + As a Health worker + I want the system to provide context-sensitive, real-time decision support in response to entry of clinical data (alerts, advice, resources) + So that I can provide appropriate services according to the latest clinical protocols + """ diff --git a/input/fsh/requirements/HIV.G.fsh b/input/fsh/requirements/HIV.G.fsh new file mode 100644 index 0000000000..6dd9ad6948 --- /dev/null +++ b/input/fsh/requirements/HIV.G.fsh @@ -0,0 +1,13 @@ +Instance: HIV.G.Diagnostics +InstanceOf: Requirements +Title: "Diagnostics" +Description: "Functional Requirements For Diagnostics" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.046" + * requirement = """ + As a Health worker + I want the system to be capable to receive diagnosis test results from laboratories or other test centers + So that I can have a faster patient follow-up + """ diff --git a/input/fsh/requirements/HIV.H.fsh b/input/fsh/requirements/HIV.H.fsh new file mode 100644 index 0000000000..d7a76246f1 --- /dev/null +++ b/input/fsh/requirements/HIV.H.fsh @@ -0,0 +1,27 @@ +Instance: HIV.H.Followingupandcontactingclients +InstanceOf: Requirements +Title: "Following up and contacting clients" +Description: "Functional Requirements For Following up and contacting clients" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.047" + * requirement = """ + As a Health worker or data entry clerk + I want to provide a list of scheduled contact dates to allow for defaulters to be traced + So that I can track and follow-up clients requiring services + """ +* statement[+] + * key = "HIV.FXNREQ.048" + * requirement = """ + As a Facility or community staff member + I want to be able to identify clients who tested positive for HIV but have not linked to care + So that I can follow up with clients who have not initiated care or may not have received confirmatory testing. + """ +* statement[+] + * key = "HIV.FXNREQ.049" + * requirement = """ + As a Facility or community staff member + I want to record when a client who self-reported as transferring is confirmed to have transferred + So that I can better identify patients that are truly lost to follow-up. + """ diff --git a/input/fsh/requirements/HIV.I.fsh b/input/fsh/requirements/HIV.I.fsh new file mode 100644 index 0000000000..039b37050b --- /dev/null +++ b/input/fsh/requirements/HIV.I.fsh @@ -0,0 +1,48 @@ +Instance: HIV.I.Referral +InstanceOf: Requirements +Title: "Referral" +Description: "Functional Requirements For Referral" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.050" + * requirement = """ + As a Facility staff member + I want to bypass the standard flow at any point if there are signs of serious illness or emergency care is needed; urgent cases should be flagged and seen promptly + So that the client can be referred, if needed. + """ +* statement[+] + * key = "HIV.FXNREQ.051" + * requirement = """ + As a Health worker + I want to be able to find out where the required service may be available + So that I can refer my client to another facility to receive the appropriate services + """ +* statement[+] + * key = "HIV.FXNREQ.052" + * requirement = """ + As a Health worker + I want to have the ability to find facilities that can provide the service or method that mine cannot provide + So that the client does not travel to a facility that cannot help them + """ +* statement[+] + * key = "HIV.FXNREQ.053" + * requirement = """ + As a Health worker + I want to have a list of the contact information for referral facilities + So that I can easily contact the facility when making the referral arrangements + """ +* statement[+] + * key = "HIV.FXNREQ.054" + * requirement = """ + As a Health worker + I want to be able to share the client’s health records with the referral facility staff + So that they can provide the care that the client needs + """ +* statement[+] + * key = "HIV.FXNREQ.055" + * requirement = """ + As a Health worker + I want to know what care and treatment the client received at the referral facility + So that I can provide appropriate care if the client comes back to my facility + """ diff --git a/input/fsh/requirements/HIV.J.fsh b/input/fsh/requirements/HIV.J.fsh new file mode 100644 index 0000000000..2d7b5ec4f3 --- /dev/null +++ b/input/fsh/requirements/HIV.J.fsh @@ -0,0 +1,27 @@ +Instance: HIV.J.Aggregatereportinganddatause +InstanceOf: Requirements +Title: "Aggregate reporting and data use" +Description: "Functional Requirements For Aggregate reporting and data use" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.FXNREQ.056" + * requirement = """ + As a Facility staff member + I want to produce a range of prepared and ad hoc reports and analyses + So that I am able to use data collected at the facility, including for service delivery (beyond reporting purposes alone). + """ +* statement[+] + * key = "HIV.FXNREQ.057" + * requirement = """ + As a Facility staff member + I want to be able to identify clients that left before a visit was completed + So that I can better monitor facility performance (for example, through wait times and clients leaving before completing a visit) + """ +* statement[+] + * key = "HIV.FXNREQ.058" + * requirement = """ + As a Health worker or data entry clerk + I want to be able to view data on my own performance and service delivery + So that I can understand trends and challenges and track my own performance over time + """ diff --git a/input/fsh/requirements/HIV.Non_Functional.fsh b/input/fsh/requirements/HIV.Non_Functional.fsh new file mode 100644 index 0000000000..238cca688b --- /dev/null +++ b/input/fsh/requirements/HIV.Non_Functional.fsh @@ -0,0 +1,415 @@ +Instance: HIVNonFunctionalRequirements +InstanceOf: Requirements +Title: "HIV non Functional Requirements" +Description: "Non Functional Requirements For HIV" +Usage: #example +* status = #active +* statement[+] + * key = "HIV.NFXNREQ.001" + * requirement = """ + Category : Security - confidentiality + Provide password protected access for authorized users + """ +* statement[+] + * key = "HIV.NFXNREQ.002" + * requirement = """ + Category : Security - confidentiality + Provide a means to ensure confidentiality and privacy of personal health information + """ +* statement[+] + * key = "HIV.NFXNREQ.003" + * requirement = """ + Category : Security - confidentiality + Provide ability for authorized users to view confidential data + """ +* statement[+] + * key = "HIV.NFXNREQ.004" + * requirement = """ + Category : Security - confidentiality + Anonymise data that is exported from the system + """ +* statement[+] + * key = "HIV.NFXNREQ.005" + * requirement = """ + Category : Security - confidentiality + Prevent remembering username and password + """ +* statement[+] + * key = "HIV.NFXNREQ.006" + * requirement = """ + Category : Security - confidentiality + Log out the user after specified time of inactivity + """ +* statement[+] + * key = "HIV.NFXNREQ.007" + * requirement = """ + Category : Security - confidentiality + Provide encrypted communication between components + """ +* statement[+] + * key = "HIV.NFXNREQ.008" + * requirement = """ + Category : Security - authentication + Notify the user to change their password the first time they log in + """ +* statement[+] + * key = "HIV.NFXNREQ.009" + * requirement = """ + Category : Security - authentication + Adhere to complex password requirements + """ +* statement[+] + * key = "HIV.NFXNREQ.010" + * requirement = """ + Category : Security - authentication + Provide a mechanism to securely change a user's password + """ +* statement[+] + * key = "HIV.NFXNREQ.011" + * requirement = """ + Category : Security - authentication + Notify the user of password change to their account + """ +* statement[+] + * key = "HIV.NFXNREQ.012" + * requirement = """ + Category : Security - authentication + Reset a user's password in a secure manner + """ +* statement[+] + * key = "HIV.NFXNREQ.013" + * requirement = """ + Category : Security - authentication + Lock a user out after a specified number of wrong password attempts + """ +* statement[+] + * key = "HIV.NFXNREQ.014" + * requirement = """ + Category : Security - authentication + Notify a user if their account is locked due to wrong password attempts + """ +* statement[+] + * key = "HIV.NFXNREQ.015" + * requirement = """ + Category : Security - authentication + Provide role-based access to the system + """ +* statement[+] + * key = "HIV.NFXNREQ.016" + * requirement = """ + Category : Security - audit trail and logs + Log system logins and logouts + """ +* statement[+] + * key = "HIV.NFXNREQ.017" + * requirement = """ + Category : Security - audit trail and logs + Record all authentication violations + """ +* statement[+] + * key = "HIV.NFXNREQ.018" + * requirement = """ + Category : Security - audit trail and logs + Log all activities performed by the user, including date and time stamp + """ +* statement[+] + * key = "HIV.NFXNREQ.019" + * requirement = """ + Category : Security - audit trail and logs + Log access to views of individual client records + """ +* statement[+] + * key = "HIV.NFXNREQ.020" + * requirement = """ + Category : Security - audit trail and logs + Log access to data summaries, reports, analysis and visualization features + """ +* statement[+] + * key = "HIV.NFXNREQ.021" + * requirement = """ + Category : Security - audit trail and logs + Log exchange of data with other systems + """ +* statement[+] + * key = "HIV.NFXNREQ.022" + * requirement = """ + Category : Security - audit trail and logs + Generate analysis of the usage of different system features and reports + """ +* statement[+] + * key = "HIV.NFXNREQ.023" + * requirement = """ + Category : Security - audit trail and logs + Log all data and system errors + """ +* statement[+] + * key = "HIV.NFXNREQ.024" + * requirement = """ + Category : Security - user management + Allow user with permission to create a new user and temporary password + """ +* statement[+] + * key = "HIV.NFXNREQ.025" + * requirement = """ + Category : Security - user management + Provide role-based access + """ +* statement[+] + * key = "HIV.NFXNREQ.026" + * requirement = """ + Category : Security - user management + Allow roles to be associated with specific geographical areas and/or health facilities + """ +* statement[+] + * key = "HIV.NFXNREQ.027" + * requirement = """ + Category : Security - user management + Allow cascading user management and assignment of roles + """ +* statement[+] + * key = "HIV.NFXNREQ.028" + * requirement = """ + Category : Security - user management + Allow user to change their own password + """ +* statement[+] + * key = "HIV.NFXNREQ.029" + * requirement = """ + Category : Security - user management + Allow admin user to request password reset + """ +* statement[+] + * key = "HIV.NFXNREQ.030" + * requirement = """ + Category : Security - user management + Notify the user to regularly change the user's password + """ +* statement[+] + * key = "HIV.NFXNREQ.031" + * requirement = """ + Category : Security - user management + Allow each user to be assigned to one or more roles + """ +* statement[+] + * key = "HIV.NFXNREQ.032" + * requirement = """ + Category : Security - user management + Support definitions of unlimited roles and assigned levels of access, viewing, entry, editing and auditing + """ +* statement[+] + * key = "HIV.NFXNREQ.033" + * requirement = """ + Category : System requirements - general + Provide a unique version number for each revision + """ +* statement[+] + * key = "HIV.NFXNREQ.034" + * requirement = """ + Category : System requirements - general + Enable earlier versions of a record to be recoverable + """ +* statement[+] + * key = "HIV.NFXNREQ.035" + * requirement = """ + Category : System requirements - general + Enable deployment in an environment subject to power loss + """ +* statement[+] + * key = "HIV.NFXNREQ.036" + * requirement = """ + Category : System requirements - general + Work in an environment that is subject to loss of connectivity + """ +* statement[+] + * key = "HIV.NFXNREQ.037" + * requirement = """ + Category : System requirements - general + Generate IDs that are unique across different installations or sites + """ +* statement[+] + * key = "HIV.NFXNREQ.038" + * requirement = """ + Category : System requirements - general + Report version number when saving data to the database + """ +* statement[+] + * key = "HIV.NFXNREQ.039" + * requirement = """ + Category : System requirements - general + Be designed to be flexible enough to accommodate necessary changes in the future + """ +* statement[+] + * key = "HIV.NFXNREQ.040" + * requirement = """ + Category : System requirements - general + Allow for offline and online functionality + """ +* statement[+] + * key = "HIV.NFXNREQ.041" + * requirement = """ + Category : System requirements - general + Show the number of records that are not yet synchronised + """ +* statement[+] + * key = "HIV.NFXNREQ.042" + * requirement = """ + Category : System requirements - general + Have ability to easily back up information + """ +* statement[+] + * key = "HIV.NFXNREQ.043" + * requirement = """ + Category : System requirements - general + Warn user if no valid backup for more than a predefined number of days + """ +* statement[+] + * key = "HIV.NFXNREQ.044" + * requirement = """ + Category : System requirements - general + Must have the ability to store images and other unstructured data + """ +* statement[+] + * key = "HIV.NFXNREQ.045" + * requirement = """ + Category : System requirements - scalability + Scalable to accommodate new demands + """ +* statement[+] + * key = "HIV.NFXNREQ.046" + * requirement = """ + Category : System requirements - scalability + Be able to accommodate at least [x number of] health facilities + """ +* statement[+] + * key = "HIV.NFXNREQ.047" + * requirement = """ + Category : System requirements - scalability + Be able to accommodate at least [x number of] concurrent users + """ +* statement[+] + * key = "HIV.NFXNREQ.048" + * requirement = """ + Category : System requirements - usability + Be user-friendly for people with low computer literacy + """ +* statement[+] + * key = "HIV.NFXNREQ.049" + * requirement = """ + Category : System requirements - usability + Provide informative error messages and tooltips + """ +* statement[+] + * key = "HIV.NFXNREQ.050" + * requirement = """ + Category : System requirements - usability + Alert the user when navigating away from the form without saving + """ +* statement[+] + * key = "HIV.NFXNREQ.051" + * requirement = """ + Category : System requirements - usability + Support real time data entry validation and feedback to prevent data entry errors from being recorded + """ +* statement[+] + * key = "HIV.NFXNREQ.052" + * requirement = """ + Category : System requirements - usability + Simplify data recording through predefined drop-down or searchable lists, radio buttons, check boxes + """ +* statement[+] + * key = "HIV.NFXNREQ.053" + * requirement = """ + Category : System requirements - usability + Support multiple languages + """ +* statement[+] + * key = "HIV.NFXNREQ.054" + * requirement = """ + Category : System requirements - usability + Use industry standard user interface practices and apply them in a consistent manner throughout the system + """ +* statement[+] + * key = "HIV.NFXNREQ.055" + * requirement = """ + Category : System requirements - usability + Easy to learn and intuitive to enable user to navigate between pages + """ +* statement[+] + * key = "HIV.NFXNREQ.056" + * requirement = """ + Category : System requirements - usability + Provide guidance to the users to better support clinical guidelines and best clinical practices + """ +* statement[+] + * key = "HIV.NFXNREQ.057" + * requirement = """ + Category : System requirements - usability + Be reliable and robust (minimize the number of system crashes) """ +* statement[+] + * key = "HIV.NFXNREQ.058" + * requirement = """ + Category : System requirements - usability + Adjust display to fit small screens (e.g. mobile phones) """ +* statement[+] + * key = "HIV.NFXNREQ.059" + * requirement = """ + Category : System requirements - configuration + Configure the system centrally + """ +* statement[+] + * key = "HIV.NFXNREQ.060" + * requirement = """ + Category : System requirements - configuration + Configure business rules in line with guidelines and standard operating procedures (SOPs) """ +* statement[+] + * key = "HIV.NFXNREQ.061" + * requirement = """ + Category : System requirements - configuration + Configure error messages + """ +* statement[+] + * key = "HIV.NFXNREQ.062" + * requirement = """ + Category : System requirements - configuration + Configure workflows and business rules to accommodate differences between facilities + """ +* statement[+] + * key = "HIV.NFXNREQ.063" + * requirement = """ + Category : System requirements - interoperability + Communicate with external systems through mediators + """ +* statement[+] + * key = "HIV.NFXNREQ.064" + * requirement = """ + Category : System requirements - interoperability + Provide access to data through application programming interfaces (APIs) """ +* statement[+] + * key = "HIV.NFXNREQ.065" + * requirement = """ + Category : System requirements - interoperability + Be interoperable with external systems through mediators + """ +* statement[+] + * key = "HIV.NFXNREQ.066" + * requirement = """ + Category : System requirements - interoperability + Link with insurance systems to verify eligibility and submit claims + """ +* statement[+] + * key = "HIV.NFXNREQ.067" + * requirement = """ + Category : System requirements - interoperability + Exchange data with other approved systems + """ +* statement[+] + * key = "HIV.NFXNREQ.068" + * requirement = """ + Category : System requirements - interoperability + Accept data from multiple input methods including paper, geocoding (GPS) """ +* statement[+] + * key = "HIV.NFXNREQ.069" + * requirement = """ + Category : System requirements - hardware and connectivity + Allow for data exchange and efficient synchronization across multiple facilities and points of service when internet is available, even when it is intermittent and slow + """ diff --git a/input/pagecontent/functional-requirements.md b/input/pagecontent/functional-requirements.md index f5f953880d..32e025e1cd 100644 --- a/input/pagecontent/functional-requirements.md +++ b/input/pagecontent/functional-requirements.md @@ -4,4 +4,4 @@ These requirements are taken from Component 8 and Web Annex D of the WHO Digital Please note that these are not exhaustive lists and should be modified according to context and user persona needs - +{% include fragment-functionalrequirements.liquid %} diff --git a/sushi-config.yaml b/sushi-config.yaml index 538c921314..92f7b0688d 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -169,7 +169,6 @@ meta: - http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-computableguideline # - http://smart.who.int/smart-base/ImplementationGuide-SGImplementationGuide - # ╭───────────────────────────Less Common Implementation Guide Properties──────────────────────────╮ # │ Uncomment the properties below to configure additional properties on the ImplementationGuide │ # │ resource. These properties are less commonly needed than those above. │ @@ -304,7 +303,7 @@ parameters: produce-jekyll-data: true path-expansion-params: - ../../input/_resources/exp-params.json - path-resource: + path-resource: - input/actors - input/maps path-binary: