Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:mobile:user_guide:vaccine_dispensing:setup [2021/03/19 02:31] Craig Drownen:mobile:user_guide:vaccine_dispensing:setup [2022/05/05 06:02] (current) Kat
Line 1: Line 1:
 +{{indexmenu_n>1140}}
 +
 ====== Vaccine Dispensing Setup ====== ====== Vaccine Dispensing Setup ======
 +===== Store settings on your central mSupply server =====
 +Your store must be set as a dispensary (go to //Special > Show stores// and double-click on your store):
 +{{  :en:mobile:user_guide:vaccine_dispensing:pasted:20210319-020859.png?700  }}
  
-{{:en:mobile:user_guide:vaccine_dispensing:pasted:20210319-020859.png?600}}+Ensure that your store has visibility of at least one item that is a vaccine: 
 +{{  :en:mobile:user_guide:vaccine_dispensing:pasted:20210319-020917.png?500  }}
  
-Ensure that your store has visibility of at least one item that is a vaccine+If you want to record when a patient has refused a vaccine, you need to create a patient event with the code 'RV'. Otherwise, no record will be created:
  
 +{{  :en:mobile:user_guide:vaccine_dispensing:pasted:20220505-060002.png?500  }}
  
-{{:en:mobile:user_guide:vaccine_dispensing:pasted:20210319-020917.png}}+{{  :en:mobile:user_guide:vaccine_dispensing:pasted:20210319-020943.png?450  }}
  
-If you want to record when a patient has refused a vaccine, you need to create a patient event. Otherwiseno record will be created.+If you want to record extra patient information during vaccinationsget in contact with The mSupply Foundation as we have no interface for you to create the formsyet.
  
-{{:en:mobile:user_guide:vaccine_dispensing:pasted:20210319-020931.png}}+To setup **vaccinators** then choose //Special > Show vaccinators// from the menus: 
 +{{ :en:mobile:user_guide:vaccine_dispensing:screenshot_2021-08-16_at_13.00.25.png?400 |}} 
 +{{ :en:mobile:user_guide:vaccine_dispensing:screenshot_2021-08-16_at_13.00.43.png?400 |}}
  
-{{:en:mobile:user_guide:vaccine_dispensing:pasted:20210319-020943.png}}+The standard mSupply mobile interface looks like this: 
 +{{  :en:mobile:user_guide:vaccine_dispensing:pasted:20210319-021046.png?700  }}
  
-If you want to record extra patient information during vaccinationsget in contact with The mSupply Foundation as we have no interface for you to create the formsyet.+After completing the setup described abovelog in to mSupply mobile and synchronise once, and then your interface will look like this, now showing vaccine dispensing as an option: 
 +{{  :en:mobile:user_guide:vaccine_dispensing:pasted:20210319-021206.png?700  }} 
 + 
 +===== Patient Extra Information Setup ===== 
 +We use the JSON-Schema standard to define both what information can be shownand the constraints on that information. 
 +Constraints can include: 
 +  * If information is compulsory 
 +  * The type of value (e.gonly a number) 
 +  * Minimum and Maximum values 
 +  * Default values
  
-Once complete, your mSupply mobile interface will look like this: 
  
-{{:en:mobile:user_guide:vaccine_dispensing:pasted:20210319-021046.png}+Once an agreed set of information has been defined, contact us to upload the form onto your server. 
 +In future versions of mSupply you will be able to do this process yourself.
  
-Log in and synchronise once, and then your interface will show vaccine dispensing as an option: 
  
-{{:en:mobile:user_guide:vaccine_dispensing:pasted:20210319-021206.png}}+Below is an example of a JSON schema 
 +The schema and the resulting user interface can be viewed [[https://rjsf-team.github.io/react-jsonschema-form/#eyJmb3JtRGF0YSI6eyJyZXNwb25kZW50Q29udGFjdERhdGEiOnt9LCJwYXRpZW50Q2xpbmljYWxEYXRhIjp7InByZXZpb3VzU2VyaW91c0FsbGVyZ2ljUmVhY3Rpb25zIjpmYWxzZSwicHJldmlvdXNBZHZlcnNlRXZlbnRzRm9sbG93aW5nSW1tdW5pc2F0aW9uIjpmYWxzZSwiY3VycmVudGx5UHJlZ25hbnQiOmZhbHNlLCJjdXJyZW50bHlMYWN0YXRpbmciOmZhbHNlfSwiQ292aWQgMTkgU3RhdHVzIjp7ImV2ZXJUZXN0ZWRQb3NpdGl2ZUZvckNPVklEMTkiOmZhbHNlfSwiQ292aWQgMTkgVmFjY2luYXRpb24gRGF0YSI6eyJDb3ZpZC0xOSBWYWNjaW5lIFR5cGUiOiJBc3RyYS16ZW5lY2EiLCJBbnkgQUVGSSBleHBlcmllbmNlZCI6ZmFsc2V9LCJmaXJzdE5hbWUiOiJDaHVjayIsImxhc3ROYW1lIjoiTm9ycmlzIiwiYWdlIjo3NSwiYmlvIjoiUm91bmRob3VzZSBraWNraW5nIGFzc2VzIHNpbmNlIDE5NDAiLCJwYXNzd29yZCI6Im5vbmVlZCJ9LCJzY2hlbWEiOnsidHlwZSI6Im9iamVjdCIsInRpdGxlIjoiRXh0cmEgaW5mb3JtYXRpb24iLCJwcm9wZXJ0aWVzIjp7InJlc3BvbmRlbnRDb250YWN0RGF0YSI6eyJ0aXRsZSI6IlJlc3BvbmRlbnQgQ29udGFjdCBEYXRhIiwiZGVzY3JpcHRpb24iOiJDb250YWN0IGRhdGEgb2YgdGhlIHJlc3BvbmRlbnQgaWYgdGhlIHJlc3BvbmRlbnQgaXMgbm90IHRoZSBwYXRpZW50LiIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImZpcnN0TmFtZSI6eyJ0aXRsZSI6IkZpcnN0IE5hbWUiLCJkZXNjcmlwdGlvbiI6IlRoZSBmaXJzdCBuYW1lIG9mIHRoZSByZXNwb25kZW50IiwidHlwZSI6InN0cmluZyIsIm1heExlbmd0aCI6MiwiZXJyb3JNZXNzYWdlIjoiSGV5ISB0aGF0IG5hbWVzIHdheSB0byBsb25nLCBidWRkeSEifSwibGFzdE5hbWUiOnsidGl0bGUiOiJMYXN0IE5hbWUiLCJkZXNjcmlwdGlvbiI6IlRoZSBsYXN0IG5hbWUgb2YgdGhlIHJlc3BvbmRlbnQiLCJ0eXBlIjoic3RyaW5nIiwibWluTGVuZ3RoIjo1MCwiZXJyb3JNZXNzYWdlIjoiSGV5ISB0aGF0IG5hbWVzIHdheSB0byBzaG9ydCwgYnVkZHkhIn0sInJlbGF0aW9uc2hpcFRvUGF0aWVudCI6eyJ0aXRsZSI6IlJlbGF0aW9uc2hpcCB0byBwYXRpZW50IiwiZGVzY3JpcHRpb24iOiJUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIHJlc3BvbmRlbnQgYW5kIHBhdGllbnQiLCJ0eXBlIjoic3RyaW5nIiwiZW51bSI6WyJNb3RoZXIiLCJGYXRoZXIiLCJTaXN0ZXIiLCJCcm90aGVyIiwiQXVudHkiLCJVbmNsZSIsIkdyYW5kbW90aGVyIiwiR3JhbmRmYXRoZXIiLCJGcmllbmQvTmVpZ2hib3VyIiwiT3RoZXIiXX19fSwicGF0aWVudENsaW5pY2FsRGF0YSI6eyJ0aXRsZSI6IlBhdGllbnQgQ2xpbmljYWwgRGF0YSIsImRlc2NyaXB0aW9uIjoiVGhlIHBhdGllbnRzIGNsaW5pY2FsIGRhdGEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJjb21vcmJpZGl0aWVzSW1tdW5vY29tcHJvbWlzZWQiOnsidGl0bGUiOiJDb21vcmJpZGl0aWVzIC8gSW1tdW5vY29tcHJvbWlzZWQiLCJkZXNjcmlwdGlvbiI6IlRoZSBwYXRpZW50cyBjb21vcmJpZGl0aWVzIiwidHlwZSI6InN0cmluZyIsImVudW0iOlsiRGlhYmV0ZXMiLCJIeXBlcnRlbnNpb24iLCJBc3RobWEiLCJDYW5jZXIgKGFsbCB0eXBlcykiLCJDZXJlYnJhbCBWYXNjdWxhciBBY2NpZGVudCIsIkNocm9uaWMgS2lkbmV5IERpc2Vhc2UiLCJDaHJvbmljIE9ic3RydWN0aXZlIEFpcndheSBEaXNlYXNlIiwiSW1tdW5vY29tcHJvbWlzZWQiLCJSaGV1bWF0aWMgSGVhcnQgRGlzZWFzZSIsIklzY2hlbWljIEhlYXJ0IERpc2Vhc2UiLCJPdGhlciJdfSwicHJldmlvdXNTZXJpb3VzQWxsZXJnaWNSZWFjdGlvbnMiOnsidGl0bGUiOiJQcmV2aW91cyBzZXJpb3VzIGFsbGVyZ2ljIHJlYWN0aW9ucyIsImRlc2NyaXB0aW9uIjoiSGFzIHRoZSBwYXRpZW50IGhhZCBhbnkgc2VyaW91cyBhbGxlcmdpYyByZWFjdGlvbnMgaW4gdGhlIHBhc3Q/IiwidHlwZSI6ImJvb2xlYW4iLCJkZWZhdWx0IjpmYWxzZX0sInByZXZpb3VzQWR2ZXJzZUV2ZW50c0ZvbGxvd2luZ0ltbXVuaXNhdGlvbiI6eyJ0aXRsZSI6IlByZXZpb3VzIGFkdmVyc2UgZXZlbnRzIGZvbGxvd2luZyBpbW11bmlzYXRpb24iLCJkZXNjcmlwdGlvbiI6IkhhcyB0aGUgcGF0aWVudCBoYWQgYW55IGFkdmVyc2UgZWZmZWN0cyBmb2xsb3dpbmcgYW4gaW1tdW5pc2F0aW9uIGluIHRoZSBwYXN0PyIsInR5cGUiOiJib29sZWFuIiwiZGVmYXVsdCI6ZmFsc2V9LCJjdXJyZW50bHlQcmVnbmFudCI6eyJ0aXRsZSI6IkN1cnJlbnRseSBQcmVnbmFudCIsImRlc2NyaXB0aW9uIjoiSXMgdGhlIHBhdGllbnQgY3VycmVudGx5IHByZWduYW50PyIsInR5cGUiOiJib29sZWFuIiwiZGVmYXVsdCI6ZmFsc2V9LCJjdXJyZW50bHlMYWN0YXRpbmciOnsidGl0bGUiOiJjdXJyZW50bHlMYWN0YXRpbmciLCJkZXNjcmlwdGlvbiI6IklzIHRoZSBwYXRpZW50IGN1cnJlbnRseSBsYWN0YXRpbmc/IiwidHlwZSI6ImJvb2xlYW4iLCJkZWZhdWx0IjpmYWxzZX19fSwiQ292aWQgMTkgU3RhdHVzIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImV2ZXJUZXN0ZWRQb3NpdGl2ZUZvckNPVklEMTkiOnsidHlwZSI6ImJvb2xlYW4iLCJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJIYXMgdGhlIHBhdGllbnQgZXZlciB0ZXN0ZWQgcG9zaXRpdmUgZm9yIENPVklELTE5JyIsInRpdGxlIjoiRXZlciB0ZXN0ZWQgcG9zaXRpdmUgZm9yIENPVklELTE5In0sIkRhdGUgb2YgZGlhZ25vc2lzIjp7InRpdGxlIjoiRGF0ZSBvZiBkaWFnbm9zaXMiLCJmb3JtYXQiOiJkYXRlIiwidHlwZSI6InN0cmluZyJ9fX0sIkNvdmlkIDE5IFZhY2NpbmF0aW9uIERhdGEiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsiQ292aWQtMTkgVmFjY2luZSBUeXBlIjp7InR5cGUiOiJzdHJpbmciLCJlbnVtIjpbIkFzdHJhLXplbmVjYSIsIlBmaXplciIsIk1vZGVybmEiLCJKb2huc29uICYgSm9obnNvbiJdLCJ0aXRsZSI6IkNPVklELTE5IFZhY2NpbmUgdHlwZSIsImRlc2NyaXB0aW9uIjoiVGhlIHR5cGUgb2YgQ09WSUQtMTkgdmFjY2luZSB0aGUgcGF0aWVudCBpcyByZWNlaXZpbmciLCJkZWZhdWx0IjoiQXN0cmEtemVuZWNhIn0sIkRhdGUgQ09WSUQtMTkgdmFjY2luZSBkb3NlIDEiOnsidHlwZSI6InN0cmluZyIsImZvcm1hdCI6ImRhdGUiLCJ0aXRsZSI6IkRhdGUgQ09WSUQtMTkgdmFjY2luZSBkb3NlIDEiLCJkZXNjcmlwdGlvbiI6IlRoZSBkYXRlIG9mIHRoZSBwYXRpZW50cyBmaXJzdCBDb3ZpZC0xOSB2YWNjaW5lIiwiZXJyb3JNZXNzYWdlIjoiRXJyb3IgbWVzc2FnZSJ9LCJEYXRlIENPVklELTE5IHZhY2NpbmUgZG9zZSAyIjp7InR5cGUiOiJzdHJpbmciLCJmb3JtYXQiOiJkYXRlIiwidGl0bGUiOiJEYXRlIENPVklELTE5IHZhY2NpbmUgZG9zZSAyIiwiZGVzY3JpcHRpb24iOiJUaGUgZGF0ZSBvZiB0aGUgcGF0aWVudHMgc2Vjb25kIENvdmlkLTE5IHZhY2NpbmUifSwiQW55IEFFRkkgZXhwZXJpZW5jZWQiOnsidHlwZSI6ImJvb2xlYW4iLCJkZWZhdWx0IjpmYWxzZSwidGl0bGUiOiJBbnkgQUVGSSBleHBlcmllbmNlZCIsImRlc2NyaXB0aW9uIjoiSGFzIHRoZSBwYXRpZW50IGV4cGVyaWVuY2VkIGFueSBBRUZJIn0sIlJlcG9ydGluZyBmb3JtIGZvciBBRUZJIGlmIEFFRkkgZXhwZXJpZW5jZWQiOnsidHlwZSI6InN0cmluZyIsInRpdGxlIjoiUmVwb3J0aW5nIGZvcm0gZm9yIEFFRkkgaWYgQUVGSSBleHBlcmllbmNlZCIsImRlc2NyaXB0aW9uIjoiSSBkdW5ubyB3aGF0IHRoaXMgaXMifX19fX0sInVpU2NoZW1hIjp7InJlc3BvbmRlbnRDb250YWN0RGF0YSI6eyJyZWxhdGlvbnNoaXBUb1BhdGllbnQiOnsidWk6cGxhY2Vob2xkZXIiOiJTZWxlY3QgYSByZWxhdGlvbnNoaXAifX0sInBhdGllbnRDbGluaWNhbERhdGEiOnsiY29tb3JiaWRpdGllc0ltbXVub2NvbXByb21pc2VkIjp7InVpOnBsYWNlaG9sZGVyIjoiUGxlYXNlIHNlbGVjdCwgaWYgYXBwbGljYWJsZS4ifX0sIkNvdmlkIDE5IFZhY2NpbmF0aW9uIERhdGEiOnsiRGF0ZSBDT1ZJRC0xOSB2YWNjaW5lIGRvc2UgMSI6eyJlcnJvck1lc3NhZ2UiOiJFcnJvciBtZXNzYWdlIn19fSwidGhlbWUiOiJkZWZhdWx0IiwibGl2ZVNldHRpbmdzIjp7InZhbGlkYXRlIjpmYWxzZSwiZGlzYWJsZSI6ZmFsc2UsIm9taXRFeHRyYURhdGEiOmZhbHNlLCJsaXZlT21pdCI6ZmFsc2V9fQ==|here]]
  
  
 +==== Example Schema ====
 +<code javascript>
 +{
 +  "type": "object",
 +  "title": "Extra information",
 +  "properties": {
 +    "respondentContactData": {
 +      "title": "Respondent Contact Data",
 +      "description": "Contact data of the respondent if the respondent is not the patient.",
 +      "type": "object",
 +      "properties": {
 +        "firstName": {
 +          "title": "First Name",
 +          "description": "The first name of the respondent",
 +          "type": "string",
 +          "maxLength": 2,
 +          "errorMessage": "Hey! That name is way too long, buddy!"
 +        },
 +        "lastName": {
 +          "title": "Last Name",
 +          "description": "The last name of the respondent",
 +          "type": "string",
 +          "minLength": 50,
 +          "errorMessage": "Hey! That name is way too short, buddy!"
 +        },
 +        "relationshipToPatient": {
 +          "title": "Relationship to patient",
 +          "description": "The relationship between the respondent and patient",
 +          "type": "string",
 +          "enum": [
 +            "Mother",
 +            "Father",
 +            "Sister",
 +            "Brother",
 +            "Aunty",
 +            "Uncle",
 +            "Grandmother",
 +            "Grandfather",
 +            "Friend/Neighbour",
 +            "Other"
 +          ]
 +        }
 +      }
 +    },
 +    "patientClinicalData": {
 +      "title": "Patient Clinical Data",
 +      "description": "The patient's clinical data",
 +      "type": "object",
 +      "properties": {
 +        "comorbiditiesImmunocompromised": {
 +          "title": "Comorbidities / Immunocompromised",
 +          "description": "The patient's comorbidities",
 +          "type": "string",
 +          "enum": [
 +            "Diabetes",
 +            "Hypertension",
 +            "Asthma",
 +            "Cancer (all types)",
 +            "Cerebral Vascular Accident",
 +            "Chronic Kidney Disease",
 +            "Chronic Obstructive Airway Disease",
 +            "Immunocompromised",
 +            "Rheumatic Heart Disease",
 +            "Ischemic Heart Disease",
 +            "Other"
 +          ]
 +        },
 +        "previousSeriousAllergicReactions": {
 +          "title": "Previous serious allergic reactions",
 +          "description": "Has the patient had any serious allergic reactions in the past?",
 +          "type": "boolean",
 +          "default": false
 +        },
 +        "previousAdverseEventsFollowingImmunisation": {
 +          "title": "Previous adverse events following immunisation",
 +          "description": "Has the patient had any adverse effects following an immunisation in the past?",
 +          "type": "boolean",
 +          "default": false
 +        },
 +        "currentlyPregnant": {
 +          "title": "Currently Pregnant",
 +          "description": "Is the patient currently pregnant?",
 +          "type": "boolean",
 +          "default": false
 +        },
 +        "currentlyLactating": {
 +          "title": "currentlyLactating",
 +          "description": "Is the patient currently lactating?",
 +          "type": "boolean",
 +          "default": false
 +        }
 +      }
 +    },
 +    "Covid 19 Status": {
 +      "type": "object",
 +      "properties": {
 +        "everTestedPositiveForCOVID19": {
 +          "type": "boolean",
 +          "default": false,
 +          "description": "Has the patient ever tested positive for COVID-19'",
 +          "title": "Ever tested positive for COVID-19"
 +        },
 +        "Date of diagnosis": {
 +          "title": "Date of diagnosis",
 +          "format": "date",
 +          "type": "string"
 +        }
 +      }
 +    },
 +    "Covid 19 Vaccination Data": {
 +      "type": "object",
 +      "properties": {
 +        "Covid-19 Vaccine Type": {
 +          "type": "string",
 +          "enum": [
 +            "Astra-zeneca",
 +            "Pfizer",
 +            "Moderna",
 +            "Johnson & Johnson"
 +          ],
 +          "title": "COVID-19 Vaccine type",
 +          "description": "The type of COVID-19 vaccine the patient is receiving",
 +          "default": "Astra-zeneca"
 +        },
 +        "Date COVID-19 vaccine dose 1": {
 +          "type": "string",
 +          "format": "date",
 +          "title": "Date COVID-19 vaccine dose 1",
 +          "description": "The date of the patient's first Covid-19 vaccine",
 +          "errorMessage": "Error message"
 +        },
 +        "Date COVID-19 vaccine dose 2": {
 +          "type": "string",
 +          "format": "date",
 +          "title": "Date COVID-19 vaccine dose 2",
 +          "description": "The date of the patient's second Covid-19 vaccine"
 +        },
 +        "Any AEFI experienced": {
 +          "type": "boolean",
 +          "default": false,
 +          "title": "Any AEFI experienced",
 +          "description": "Has the patient experienced any AEFI"
 +        },
 +        "Reporting form for AEFI if AEFI experienced": {
 +          "type": "string",
 +          "title": "Reporting form for AEFI if AEFI experienced",
 +          "description": "I dunno what this is"
 +        }
 +      }
 +    }
 +  }
 +}
 +</code>
  • en/mobile/user_guide/vaccine_dispensing/setup.1616121081.txt.gz
  • Last modified: 2021/03/19 02:31
  • by Craig Drown