diff --git a/pom.xml b/pom.xml index fda4bdfb..6d0fb34d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ de.imi MoPat - 3.3.7 + 3.4.0 war MoPat diff --git a/src/main/java/de/imi/mopat/controller/AdminController.java b/src/main/java/de/imi/mopat/controller/AdminController.java index 9f1682aa..2792c187 100644 --- a/src/main/java/de/imi/mopat/controller/AdminController.java +++ b/src/main/java/de/imi/mopat/controller/AdminController.java @@ -37,4 +37,4 @@ public String showAdmin(final Model model) { model.addAttribute("gitRepositoryMetadata", gitRepositoryMetadataHandler.getGitRepositoryMetadata()); return "admin/index"; } -} +} \ No newline at end of file diff --git a/src/main/java/de/imi/mopat/controller/QuestionnaireController.java b/src/main/java/de/imi/mopat/controller/QuestionnaireController.java index 19fc5a5b..6a7592f9 100644 --- a/src/main/java/de/imi/mopat/controller/QuestionnaireController.java +++ b/src/main/java/de/imi/mopat/controller/QuestionnaireController.java @@ -151,7 +151,7 @@ public class QuestionnaireController { @PreAuthorize("hasRole('ROLE_EDITOR')") public String listQuestionnaires(final Model model) { List allQuestionnaires = questionnaireDao.getAllElements(); - // This map contians a questionnaire id as key and a set with all + // This map contains a questionnaire id as key and a set with all // languages // which are available for all questions in this questionnaire. Map> availableLanguagesInQuestionForQuestionnaires = new HashMap<>(); diff --git a/src/main/java/de/imi/mopat/controller/RootController.java b/src/main/java/de/imi/mopat/controller/RootController.java index 5aeb390c..c3b19a12 100644 --- a/src/main/java/de/imi/mopat/controller/RootController.java +++ b/src/main/java/de/imi/mopat/controller/RootController.java @@ -5,6 +5,7 @@ import jakarta.servlet.ServletContext; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.InitBinder; @@ -36,7 +37,11 @@ public class RootController { @Autowired private ServletContext context; - + + @Value("${de.imi.mopat.isDemoInstance:false}") + private boolean isDemoInstance; + + /** * Globally set Form limit to more than 256 * @param binder @@ -126,33 +131,71 @@ public LocaleHelper localeHelper() { return localeHelper; } + /** + * Adds context path for request to frontend + * @param request to process + * @return context path + */ @ModelAttribute("contextPath") public String getRequestContextPath(HttpServletRequest request) { return request.getContextPath(); } + /** + * Adds query string for request to frontend + * @param request to process + * @return query string for request + */ @ModelAttribute("queryString") public String getQueryString(HttpServletRequest request) { return request.getQueryString(); } + /** + * Adds request URL to frontend + * @param request to add url for + * @return URL for request + */ @ModelAttribute("requestURL") public String getRequestURL(HttpServletRequest request) { return request.getRequestURL().toString(); } + /** + * Adds the real path for the application to frontend + * @return real path + */ @ModelAttribute("realPath") public String getRealPath() { return this.context.getRealPath(""); } + /** + * Adds requestURI to frontend + * @param request to process + * @return URI for request + */ @ModelAttribute("requestURI") public String getRequestURI(HttpServletRequest request) { return request.getRequestURI(); } + /** + * Adds servlet path to frontend + * @param request to process this for + * @return servlet path + */ @ModelAttribute("servletPath") public String getServletPath(HttpServletRequest request) { return request.getServletPath(); } + + /** + * Adds a flag for the demo instance of MoPat + * @return true if instance should run in demo mode + */ + @ModelAttribute("isDemoInstance") + public boolean isDemoInstance() { + return isDemoInstance; + } } diff --git a/src/main/java/de/imi/mopat/validator/SliderAnswerDTOValidator.java b/src/main/java/de/imi/mopat/validator/SliderAnswerDTOValidator.java index e35184ea..00041971 100644 --- a/src/main/java/de/imi/mopat/validator/SliderAnswerDTOValidator.java +++ b/src/main/java/de/imi/mopat/validator/SliderAnswerDTOValidator.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.Map; import de.imi.mopat.model.dto.export.SliderIconDTO; import org.springframework.beans.factory.annotation.Autowired; @@ -114,6 +115,31 @@ public void validate(final Object target, final Errors errors) { errors.popNestedPath(); } } + + //for each entry in localizedMinimumText check if size of entry is bigger than 255 char + Map localizedMinimumText = sliderAnswer.getLocalizedMinimumText(); + if (localizedMinimumText != null){ + for (Map.Entry entry : localizedMinimumText.entrySet()){ + if (entry.getValue() != null && entry.getValue().length() > 255){ + errors.rejectValue("localizedMinimumText['" + entry.getKey() + "']", + MoPatValidator.ERRORCODE_ERRORMESSAGE, + messageSource.getMessage("sliderAnswer.validator.localizedMinMaxText", + new Object[]{}, LocaleContextHolder.getLocale())); + } + } + } + + Map localizedMaximumText = sliderAnswer.getLocalizedMaximumText(); + if (localizedMaximumText != null) { + for (Map.Entry entry : localizedMaximumText.entrySet()) { + if (entry.getValue() != null && entry.getValue().length() > 255) { + errors.rejectValue("localizedMaximumText['" + entry.getKey() + "']", + MoPatValidator.ERRORCODE_ERRORMESSAGE, + messageSource.getMessage("sliderAnswer.validator.localizedMinMaxText", + new Object[]{}, LocaleContextHolder.getLocale())); + } + } + } } catch (NumberFormatException ex) { } } diff --git a/src/main/java/de/imi/mopat/validator/SliderAnswerValidator.java b/src/main/java/de/imi/mopat/validator/SliderAnswerValidator.java index de5b3f38..6723f64a 100644 --- a/src/main/java/de/imi/mopat/validator/SliderAnswerValidator.java +++ b/src/main/java/de/imi/mopat/validator/SliderAnswerValidator.java @@ -5,6 +5,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; @@ -94,6 +95,7 @@ public void validate(final Object target, final Errors errors) { } } } + } catch (NumberFormatException ex) { } } diff --git a/src/main/resources/less/mobile/survey.less b/src/main/resources/less/mobile/survey.less index bf3e456a..bdd3af4b 100644 --- a/src/main/resources/less/mobile/survey.less +++ b/src/main/resources/less/mobile/survey.less @@ -239,7 +239,7 @@ select.btn-lowEmphasis { } } - &:disabled { + &:disabled, &.disabled { background-color: @color-gray-lighter-darker !important; color: @color-gray !important; box-shadow: none !important; diff --git a/src/main/resources/message/messages.properties b/src/main/resources/message/messages.properties index 79cf7a1d..a754a913 100644 --- a/src/main/resources/message/messages.properties +++ b/src/main/resources/message/messages.properties @@ -503,7 +503,7 @@ helpMode.label.question.dropDown=This question allows choosing an answer from a helpMode.label.question.freeText=This question allows entering a text. Please click/tap the field and write your answer in the field. helpMode.label.question.image=This is an image question. Please mark the specific position with a click/tap on the image. helpMode.label.question.multipleChoice=This question allows choosing one or several answers from a given set of answers. If it is possible to choose more than one answer you will find a hint above the answers. -helpMode.label.question.numberCheckbox=This question allows choosing anumber from a given set of numbers. Please click/tap on the desired number to select it. +helpMode.label.question.numberCheckbox=This question allows choosing a number from a given set of numbers. Please click/tap on the desired number to select it. helpMode.label.question.numberCheckboxText=This question allows choosing a number from a given set of numbers and an additional text. Please click/tap on the desired number to select it and write your answer in the field below. helpMode.label.question.numberInput=This question allows entering a number. If there are any restrictions concerning the number you will find a hint above the answer field. helpMode.label.question.slider=This question allows entering a number on a so-called slider. Please click/tap and hold the handle to move it to the desired position. To delete your answer click/tap on the handle. @@ -899,6 +899,7 @@ sliderAnswer.validator.stepsizeBiggerThanDifferenceMaxMin=The answer's step size sliderAnswer.validator.stepsizeLowerEqualZero=The answer's step size was <= 0 sliderAnswer.validator.stepsizeWrongPattern=The answer's step size does not match the required pattern. sliderAnswer.validator.tooManySteps=There are more than 200 steps available. Alternatively you can also use the question type number input. +sliderAnswer.validator.localizedMinMaxText=The text is longer than 255 characters sliderIcon.validator.missingIconValue=An icon for every field has to be selected, if the feature is enabled. sliderIcon.validator.missingPosition=The icon's position is required. sliderIcon.validator.positionAlreadyInUse=The icon's position of one ore more icons is identical. Please select different values. @@ -1146,6 +1147,7 @@ user.type.local=Local value=Value valueOf=Value of question valueOfScore=Value of score +login.demo.infoText=Welcome to MoPat Demo! This is a test installation with unrestricted access to the application. You can try out all the functions of MoPat here. If you need help, you can consult our manual, which contains detailed information on all functions.
Please note: The data is reset regularly. Questionnaires and surveys you have created will be deleted and there is no way to restore them. Use this system for testing only. If you require further information, please contact us: mopat@uni-muenster.de questionnaire.download.mopatComplete=MoPat with Export Templates configuration.label.exportFHIRViaHL7v2=Send FHIR export via HL7 communication server. configuration.label.FHIRViaHL7v2Host=Send FHIR export via HL7 communication server. diff --git a/src/main/resources/message/messages_de_DE.properties b/src/main/resources/message/messages_de_DE.properties index 96226181..694fcbaa 100644 --- a/src/main/resources/message/messages_de_DE.properties +++ b/src/main/resources/message/messages_de_DE.properties @@ -137,8 +137,8 @@ bundle.button.add=Fragebogenpaket hinzuf\u00fcgen bundle.button.edit=Editieren bundle.button.lock=Sperren bundle.button.publish=Freigeben -bundle.button.testExport=Zugewiesene Exporte testen bundle.button.remove=L\u00f6schen +bundle.button.testExport=Zugewiesene Exporte testen bundle.error.deleteNotPossible=Das Fragebogenpaket {0} kann nicht gel\u00f6scht werden, da mindestens eine Befragung mit diesem Fragebogenpaket durchgef\u00fchrt wurde. bundle.error.deletePossible=Das Fragebogenpaket {0} wurde gel\u00f6scht. bundle.error.firstQuestionnaireNotActive=Der erste Fragebogen dieses Pakets muss aktiviert sein. @@ -267,7 +267,9 @@ configuration.alert.uploadImagePath=WARNUNG: Wenn Sie den Pfad \u00e4ndern, sind configuration.button.add=Hinzuf\u00fcgen configuration.button.remove=Entfernen configuration.description.baseUrl=Dies ist die Base-URL einschlie\u00dflich des Kontextpfades der Anwendung. +configuration.description.exportFHIRViaHL7v2=F\u00fcr FHIR kann der Export mittels eines HL7v2 Kommunikationsservers eingerichtet werden. In dem Fall wird die FHIR Ressource als Blob in die HL7 Nachricht eingebettet. configuration.description.exportPath=Hierhin werden die beantworteten Frageb\u00f6gen exportiert. Der angegenbene Pfad muss ein Verzeichnis sein und deshalb mit einem Slash enden. +configuration.description.fileDeletionTimeWindowInMillis=Alle von MoPat exportierten Dateien, die \u00e4lter als das angegebene Zeitfenster sind, werden gel\u00f6scht (Standard: 30 Tage). Bei der Angabe von -1 wird das L\u00f6schen deaktiviert. configuration.description.finishedEncounterMailaddressTimeWindowInMillis=Alle E-Mail Adressen von abgeschlossenen Befragungen, die \u00e4lter als das angegebene Zeitfenster sind, werden gel\u00f6scht (Standard: 30 Tage). Bei der Angabe von -1 wird das L\u00f6schen deaktiviert. configuration.description.finishedEncounterScheduledTimeWindowInMillis=Alle abgeschlossenen Befragungsserien, die \u00e4lter als das angegebene Zeitfenster sind, werden gel\u00f6scht (Standard: 90 Tage). Bei der Angabe von -1 wird das L\u00f6schen deaktiviert. configuration.description.finishedEncounterTimeWindowInMillis=Alle abgeschlossenen Befragungen, die \u00e4lter als das angegebene Zeitfenster sind, werden gel\u00f6scht (Standard: 30 Tage). Bei der Angabe von -1 wird das L\u00f6schen deaktiviert. @@ -283,6 +285,8 @@ configuration.error.wrongValidationSchemaType=Das Dateiformat entspricht nicht d configuration.file.notUploaded=Keine Datei hochgeladen configuration.file.path=Pfad der hochgeladenen Datei configuration.file.uploaded=Datei hochgeladen +configuration.label.FHIRViaHL7v2Host=Host des HL7 Kommunikationsservers f\u00fcr den FHIR Export. +configuration.label.FHIRViaHL7v2Port=Port des HL7 Kommunikationsservers f\u00fcr den FHIR Export. configuration.label.FHIRsystemURI=System URI f\u00fcr FHIR Export configuration.label.HL7v22PatientInformationRetrieverHostname=Host f\u00fcr den HL7v22PatientInformationRetriever configuration.label.HL7v22PatientInformationRetrieverPort=Port f\u00fcr den HL7v22PatientInformationRetriever @@ -305,6 +309,7 @@ configuration.label.caseNumberType=Typ der Fallnummer bei Fallnummerneingabe configuration.label.defaultLanguage=Standardsprache f\u00fcr die Anwendung configuration.label.enableGlobalPinAuth=Die Verwendung eines Pins erlauben, um Nutzern eine schnelle Anwendung zu ermöglichen. configuration.label.encounter.checkTimeActivated=Abgeschlossene Befragungen nach einer vorgegebenden Zeit l\u00f6schen +configuration.label.encounter.fileDeletionTimeWindowInMillis=Zeit nach der erstellte Dateien gel\u00f6scht werden (in ms) configuration.label.encounter.finishedEncounterMailaddressTimeWindowInMillis=Zeit, nach der die E-Mail Adressen der Patienten nach abgeschlossenen Befragungen gel\u00f6scht werden (in ms) configuration.label.encounter.finishedEncounterScheduledTimeWindowInMillis=Zeit, nach der abgeschlossene Befragungsserien gel\u00f6scht werden (in ms) configuration.label.encounter.finishedEncounterTimeWindowInMillis=Zeit, nach der abgeschlossene Befragungen gel\u00f6scht werden (in ms) @@ -315,6 +320,7 @@ configuration.label.exportFHIRInDirectory=Dateibasierten FHIR-Export nutzen. configuration.label.exportFHIRPath=Exportpfad f\u00fcr den dateibasierten FHIR-Export. Bitte geben Sie den absoluten Pfad (nicht den relativen Pfad) an. configuration.label.exportFHIRUrl=URL der REST-Schnittstelle f\u00fcr den FHIR-Export. configuration.label.exportFHIRViaCommunicationServer=FHIR-Export an REST Schnittstelle senden. +configuration.label.exportFHIRViaHL7v2=FHIR Export via HL7 Kommunikationsserver senden. configuration.label.exportHL7ClientPKCSPassword=Password f\u00fcr den privaten Schl\u00fcssel des Clients (der in der angegebenen Datei enthalten ist). configuration.label.exportHL7ClientPKCSPath=Client PKCS 12 Archiv (.p12 Datei), das den Client authorisiert und die Nachricht verschl\u00fcsselt. Bitte laden Sie ein valides PKCS Archiv hoch. configuration.label.exportHL7Host=Host des HL7 Kommunikationsservers. @@ -401,6 +407,7 @@ dateAnswer.validator.startLaterThanEnd=Das fr\u00fcheste Datum ist sp\u00e4ter a editor.welcome=Willkommen zur Mobilen Patientenbefragung (MoPat)!

Dies ist die Administrationsoberfl\u00e4che von MoPat.
Sie k\u00f6nnen von dieser Oberfl\u00e4che ausMoPat ist eine Entwicklung des Instituts f\u00fcr Medizinische Informatik, M\u00fcnster, unter Leitung von Univ.-Prof. Dr. rer. nat. Dominik Heider.
Sie erreichen uns unter {1} oder {2}. encounter.button.encounterName=Name encounter.button.export=Exportieren +encounter.error.caseNumberInvalid=Die Fallnummer ist nicht g\u00FCltig. Bitte versuchen Sie es erneut! encounter.error.caseNumberIsEmpty=Die Fallnummer darf nicht nur aus Leerzeichen bestehen. encounter.export.auto=Automatisch exportiert encounter.export.conflict=Konflikt @@ -699,10 +706,10 @@ maximum=Maximum von minimum=Minimum von modal.delete.cancel=Abbrechen modal.delete.confirm=L\u00f6schen -modal.delete.question.clinic=Sind Sie sicher, dass Sie die Klinik "{0}" l\u00f6schen m\u00f6chten? -modal.delete.question.questionnaire=Sind Sie sicher, dass Sie den Fragebogen "{0}" l\u00f6schen m\u00f6chten? modal.delete.question.bundle=Sind Sie sicher, dass Sie das Fragebogenpaket "{0}" l\u00f6schen m\u00f6chten? +modal.delete.question.clinic=Sind Sie sicher, dass Sie die Klinik "{0}" l\u00f6schen m\u00f6chten? modal.delete.question.question=Sind Sie sicher, dass Sie Frage {0} l\u00f6schen m\u00f6chten? +modal.delete.question.questionnaire=Sind Sie sicher, dass Sie den Fragebogen "{0}" l\u00f6schen m\u00f6chten? modal.delete.title=Best\u00e4tigung der L\u00f6schung modal.delete.warning=Diese Aktion kann nicht r\u00fcckg\u00e4ngig gemacht werden. numberInputAnswer.validator.differenceMaxMinNotDivisibleByStepsize=Der Abstand zwischen Minimum und Maximum ist nicht restlos durch die Schrittgr\u00f6\u00dfe teilbar @@ -815,6 +822,7 @@ questionnaire.button.remove=L\u00f6schen questionnaire.button.saveAndEdit=Speichern und Fragen bearbeiten questionnaire.button.showExportTemplates=Export-Templates bearbeiten questionnaire.displayName.notNull=Der Fragebogen ben\u00f6tigt einen lokalisierten Anzeigenamen +questionnaire.download.mopatComplete=MoPat mit Export-Templates questionnaire.error.deleteQuestionnaireNotPossible=Der Fragebogen {0} kann nicht gel\u00f6scht werden, da der Fragebogen w\u00e4hrend einer Befragung bereits beantwortet wurde. questionnaire.error.deleteQuestionnairePossible=Der Fragebogen {0} wurde gel\u00f6scht. questionnaire.error.editLastCondition=Dies ist die letzte Frage dieses Fragebogens. Daher k\u00f6nnen f\u00fcr diese Frage keine Bedingungen festgelegt werden. @@ -1005,6 +1013,7 @@ survey.questionnaire.MinMaxAnswer=Geben Sie zwischen {min} und {max} Antworten. survey.questionnaire.button.answerQuestionsMultiple=Fragen beantworten survey.questionnaire.button.answerQuestionsSingle=Frage beantworten survey.questionnaire.button.closeApplication=Anwendung beenden +survey.questionnaire.button.completeQuestionnaireInBundle=Abschluss des Befragungsabschnittes survey.questionnaire.button.completenessCheck=Vollst\u00e4ndigkeitspr\u00fcfung survey.questionnaire.button.completenessCheckTitlePartMultiple=Der Fragebogen enth\u00e4lt {numberQuestions} nicht vollst\u00e4ndig beantwortete Fragen. Wollen Sie diese nachtr\u00e4glich beantworten? survey.questionnaire.button.completenessCheckTitlePartSingle=Der Fragebogen enth\u00e4lt eine nicht vollst\u00e4ndig beantwortete Frage. Wollen Sie diese nachtr\u00e4glich beantworten? @@ -1148,10 +1157,5 @@ user.type.local=Lokal value=Wert valueOf=Wert der Frage valueOfScore=Wert des Scores -questionnaire.download.mopatComplete=MoPat mit Export-Templates -configuration.label.exportFHIRViaHL7v2=FHIR Export via HL7 Kommunikationsserver senden. -configuration.label.FHIRViaHL7v2Host=Host des HL7 Kommunikationsservers f\u00fcr den FHIR Export. -configuration.label.FHIRViaHL7v2Port=Port des HL7 Kommunikationsservers f\u00fcr den FHIR Export. -configuration.description.exportFHIRViaHL7v2=F\u00fcr FHIR kann der Export mittels eines HL7v2 Kommunikationsservers eingerichtet werden. In dem Fall wird die FHIR Ressource als Blob in die HL7 Nachricht eingebettet. -encounter.error.caseNumberInvalid=Die Fallnummer ist nicht g\u00FCltig. Bitte versuchen Sie es erneut! -survey.questionnaire.button.completeQuestionnaireInBundle=Abschluss des Befragungsabschnittes \ No newline at end of file +sliderAnswer.validator.localizedMinMaxText=Der eingegebene Text hat mehr als 255 Zeichen. +login.demo.infoText=Willkommen zu MoPat Demo!
Dies ist eine Testinstallation mit uneingeschr\u00e4nktem Zugriff zur Anwendung. Sie k\u00f6nnen hier alle Funktionen von MoPat ausprobieren. Ben\u00f6tigen Sie Hilfe, k\u00f6nnen Sie unser Handbuch zurate ziehen, in welchem sich ausf\u00fchrliche Informationen zu allen Funktionen finden lassen.
Achtung: Die Daten werden regelm\u00e4\u00dfig zur\u00fcckgesetzt. Von Ihnen angelegte Frageb\u00f6gen und Befragungen werden demnach gel\u00f6scht und es gibt keine M\u00f6glichkeit diese wiederherzustellen. Nutzen Sie dieses System ausschlie\u00dflich f\u00fcr Tests.
Ben\u00f6tigen Sie weitere Informationen, kontaktieren Sie uns: mopat@uni-muenster.de \ No newline at end of file diff --git a/src/main/resources/message/messages_en_GB.properties b/src/main/resources/message/messages_en_GB.properties index ae3b6e60..a754a913 100644 --- a/src/main/resources/message/messages_en_GB.properties +++ b/src/main/resources/message/messages_en_GB.properties @@ -503,7 +503,7 @@ helpMode.label.question.dropDown=This question allows choosing an answer from a helpMode.label.question.freeText=This question allows entering a text. Please click/tap the field and write your answer in the field. helpMode.label.question.image=This is an image question. Please mark the specific position with a click/tap on the image. helpMode.label.question.multipleChoice=This question allows choosing one or several answers from a given set of answers. If it is possible to choose more than one answer you will find a hint above the answers. -helpMode.label.question.numberCheckbox=This question allows choosing anumber from a given set of numbers. Please click/tap on the desired number to select it. +helpMode.label.question.numberCheckbox=This question allows choosing a number from a given set of numbers. Please click/tap on the desired number to select it. helpMode.label.question.numberCheckboxText=This question allows choosing a number from a given set of numbers and an additional text. Please click/tap on the desired number to select it and write your answer in the field below. helpMode.label.question.numberInput=This question allows entering a number. If there are any restrictions concerning the number you will find a hint above the answer field. helpMode.label.question.slider=This question allows entering a number on a so-called slider. Please click/tap and hold the handle to move it to the desired position. To delete your answer click/tap on the handle. @@ -899,6 +899,7 @@ sliderAnswer.validator.stepsizeBiggerThanDifferenceMaxMin=The answer's step size sliderAnswer.validator.stepsizeLowerEqualZero=The answer's step size was <= 0 sliderAnswer.validator.stepsizeWrongPattern=The answer's step size does not match the required pattern. sliderAnswer.validator.tooManySteps=There are more than 200 steps available. Alternatively you can also use the question type number input. +sliderAnswer.validator.localizedMinMaxText=The text is longer than 255 characters sliderIcon.validator.missingIconValue=An icon for every field has to be selected, if the feature is enabled. sliderIcon.validator.missingPosition=The icon's position is required. sliderIcon.validator.positionAlreadyInUse=The icon's position of one ore more icons is identical. Please select different values. @@ -1146,10 +1147,12 @@ user.type.local=Local value=Value valueOf=Value of question valueOfScore=Value of score +login.demo.infoText=Welcome to MoPat Demo! This is a test installation with unrestricted access to the application. You can try out all the functions of MoPat here. If you need help, you can consult our manual, which contains detailed information on all functions.
Please note: The data is reset regularly. Questionnaires and surveys you have created will be deleted and there is no way to restore them. Use this system for testing only. If you require further information, please contact us: mopat@uni-muenster.de questionnaire.download.mopatComplete=MoPat with Export Templates configuration.label.exportFHIRViaHL7v2=Send FHIR export via HL7 communication server. configuration.label.FHIRViaHL7v2Host=Send FHIR export via HL7 communication server. configuration.label.FHIRViaHL7v2Port=Port of the HL7 communication server for FHIR export. +configuration.label.FHIRViaHL7v2SendingFacility= configuration.description.exportFHIRViaHL7v2=For FHIR, export can be set up using an HL7v2 communication server. In this case, the FHIR resource is embedded as a blob in the HL7 message. encounter.error.caseNumberInvalid=The case number was invalid. Please try again! survey.questionnaire.button.completeQuestionnaireInBundle=Complete the survey section \ No newline at end of file diff --git a/src/main/resources/message/messages_es_ES.properties b/src/main/resources/message/messages_es_ES.properties index d51cb7b3..319e895e 100644 --- a/src/main/resources/message/messages_es_ES.properties +++ b/src/main/resources/message/messages_es_ES.properties @@ -1009,6 +1009,7 @@ user.type.local=Local value=Valor valueOf=Valor de la pregunta valueOfScore=Puntuaci\u00f3n +login.demo.infoText=\u00a1Bienvenido a la demo de MoPat!
Esta es una instalaci\u00f3n de prueba con acceso sin restricciones a la aplicaci\u00f3n. Aqu\u00ed puede probar todas las funciones de MoPat. Si necesita ayuda, puede consultar nuestro manual, en el que encontrar\u00e1 informaci\u00f3n detallada sobre todas las funciones.
Atenci\u00f3n: Los datos se restablecen peri\u00f3dicamente. Por lo tanto, los cuestionarios y encuestas que cree se eliminar\u00e1n y no habr\u00e1 posibilidad de restaurarlos. Utilice este sistema exclusivamente para pruebas.
Si necesita m\u00e1s informaci\u00f3n, cont\u00e1ctenos: mopat@uni-muenster.de configuration.label.FHIRViaHL7v2Host=Host del servidor de comunicaciones HL7 para la exportaci\u00f3n FHIR. configuration.label.exportFHIRViaHL7v2=Enviar exportaci\u00f3n FHIR a trav\u00e9s del servidor de comunicaciones HL7. configuration.label.FHIRViaHL7v2Port=Puerto del servidor de comunicaciones HL7 para la exportaci\u00f3n FHIR. diff --git a/src/main/resources/mopat.properties b/src/main/resources/mopat.properties index 14d52639..07f980cc 100644 --- a/src/main/resources/mopat.properties +++ b/src/main/resources/mopat.properties @@ -18,4 +18,5 @@ de.imi.mopat.datasource.mopat_userDataSource.jdbc-url=${MYSQL_MOPAT_USER_URL:jdb de.imi.mopat.datasource.mopat_auditDataSource.jdbc-url=${MYSQL_MOPAT_AUDIT_URL:jdbc:mysql://localhost:3306/moPat_audit?autoReconnect=true&useUnicode=true&useEncoding=true&characterEncoding=UTF-8} de.imi.mopat.passwordPepper=${PEPPER:AdP5ktlaIVaon53yJg8zEZSnFr33Dinil69ZtZMTWXubKMUEpfyNvOgWLdwNLhedY3WT5TVcqgg} de.imi.mopat.config.name=config.properties -de.imi.mopat.config.path=/etc/mopat/ \ No newline at end of file +de.imi.mopat.config.path=/etc/mopat/ +de.imi.mopat.isDemoInstance=false \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/configuration/edit.html b/src/main/webapp/WEB-INF/configuration/edit.html index 49a41435..7051ce6d 100644 --- a/src/main/webapp/WEB-INF/configuration/edit.html +++ b/src/main/webapp/WEB-INF/configuration/edit.html @@ -8,7 +8,9 @@ th:with="title=#{admin.navigation.configuration}" > -
+
- - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/layout/error.html b/src/main/webapp/WEB-INF/layout/error.html index 7b30e21b..bd93bb47 100644 --- a/src/main/webapp/WEB-INF/layout/error.html +++ b/src/main/webapp/WEB-INF/layout/error.html @@ -7,10 +7,10 @@ - + - + - + - + - + @@ -57,70 +57,70 @@ - + - - + + - + diff --git a/src/main/webapp/WEB-INF/layout/mobileQuestionnaire.html b/src/main/webapp/WEB-INF/layout/mobileQuestionnaire.html index 281841c4..468abafb 100644 --- a/src/main/webapp/WEB-INF/layout/mobileQuestionnaire.html +++ b/src/main/webapp/WEB-INF/layout/mobileQuestionnaire.html @@ -12,9 +12,9 @@ - - - + + + diff --git a/src/main/webapp/WEB-INF/layout/mobileUser.html b/src/main/webapp/WEB-INF/layout/mobileUser.html index 450bc156..c1944edc 100644 --- a/src/main/webapp/WEB-INF/layout/mobileUser.html +++ b/src/main/webapp/WEB-INF/layout/mobileUser.html @@ -7,6 +7,6 @@ th:with="onLoad='initUser();'" > - + diff --git a/src/main/webapp/WEB-INF/layout/pinlogin.html b/src/main/webapp/WEB-INF/layout/pinlogin.html index 3ac632e6..379396c1 100644 --- a/src/main/webapp/WEB-INF/layout/pinlogin.html +++ b/src/main/webapp/WEB-INF/layout/pinlogin.html @@ -28,15 +28,15 @@ - + - + - + - + - - -

- - -
- + +

+ + +
+ -
-
- + -
-
- + + /> +
+ + +
+
+
+ +
-
- - +
+
+
+ +
-
-
-
- -
+ +
+
-
-
-
- -
+
+ + +
+
+
+
+ + - -
-
+
+ -
- - -
-
-
-
- - - -
- - -
    -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
-
-
-
-
-
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
- - -
- +
-
-
- +
+ - -
-
- +
+
+ - -
-
- +
+
+ - -
-
- -
- - -
- - + /> + +
+
+ + +
+ + +
+ + - + if (first + 1 !== second && first - 1 !== second) { + return false; + } + } + return true; + } + diff --git a/src/main/webapp/WEB-INF/mobile/user/login.html b/src/main/webapp/WEB-INF/mobile/user/login.html index b1a1effa..11c29d05 100644 --- a/src/main/webapp/WEB-INF/mobile/user/login.html +++ b/src/main/webapp/WEB-INF/mobile/user/login.html @@ -4,124 +4,179 @@ - -
- -
- +
- + if (passwordField.attr("type") === "password") { + passwordField.attr("type", "text"); + passwordToggleIcon.attr("class", "bi bi-eye-slash"); + } else { + passwordField.attr("type", "password"); + passwordToggleIcon.attr("class", "bi bi-eye"); + } + }); + } + }); + diff --git a/src/main/webapp/WEB-INF/navigation/admin.html b/src/main/webapp/WEB-INF/navigation/admin.html index 7af008d9..969349f7 100644 --- a/src/main/webapp/WEB-INF/navigation/admin.html +++ b/src/main/webapp/WEB-INF/navigation/admin.html @@ -211,7 +211,9 @@ -