diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7f6429fb..7b03f331 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,14 +62,6 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - - name: Cache Docker layers - uses: actions/cache@v2 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ hashFiles('Dockerfile', 'java-sdk/**/*.gradle.kts', 'java-sdk/gradle.properties', 'java-sdk/*/src/main/**', 'commons/**', 'specifications/**', 'docker/**') }} - restore-keys: | - ${{ runner.os }}-buildx- - - name: Login to Docker Hub uses: docker/login-action@v1 with: @@ -90,11 +82,29 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 + - name: Cache Docker layers + id: cache-buildx + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ hashFiles('Dockerfile', 'java-sdk/**/*.gradle', 'java-sdk/gradle.properties', 'java-sdk/*/src/main/**', 'commons/**', 'specifications/**', 'docker/**') }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Cache parameters + id: cache-parameters + run: | + if [ "${{ steps.cache-buildx.outputs.cache-hit }}" = "true" ]; then + echo "::set-output name=cache-to::" + else + echo "::set-output name=cache-to::type=local,dest=/tmp/.buildx-cache-new,mode=max" + fi + - name: Build docker uses: docker/build-push-action@v2 with: cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache,mode=max + cache-to: ${{ steps.cache-parameters.outputs.cache-to }} load: true tags: ${{ steps.docker_meta.outputs.tags }} # Use runtime labels from docker_meta as well as fixed labels @@ -106,7 +116,7 @@ jobs: org.opencontainers.image.vendor=RADAR-base org.opencontainers.image.licenses=Apache-2.0 - - name: Inspect docker images + - name: Inspect docker image run: docker image inspect ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} - name: Check docker image @@ -115,6 +125,15 @@ jobs: docker run --rm ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} radar-schemas-tools --help # Push the image on the dev and master branches - - name: Push images + - name: Push image if: ${{ github.event_name != 'pull_request' }} run: docker push ${{ env.DOCKER_IMAGE }}:${{ steps.docker_meta.outputs.version }} + + # Temp fix + # https://github.com/docker/build-push-action/issues/252 + # https://github.com/moby/buildkit/issues/1896 + - name: Move docker build cache + if: steps.cache-buildx.outputs.cache-hit != 'true' + run: | + rm -rf /tmp/.buildx-cache + mv /tmp/.buildx-cache-new /tmp/.buildx-cache diff --git a/.github/workflows/publish_snapshots.yml b/.github/workflows/publish_snapshots.yml new file mode 100644 index 00000000..3a08d41a --- /dev/null +++ b/.github/workflows/publish_snapshots.yml @@ -0,0 +1,53 @@ +# Continuous integration, including test and integration test +name: Publish snapshots + +# Run in master and dev branches and in all pull requests to those branches +on: + push: + branches: [ dev ] + +jobs: + # Build and test the code + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + defaults: + run: + working-directory: java-sdk + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: Has SNAPSHOT version + id: is-snapshot + run: grep "version = '.*-SNAPSHOT'" build.gradle + + - uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Cache + uses: actions/cache@v2 + with: + # Cache gradle directories + path: | + ~/.gradle/caches + ~/.gradle/wrapper + # Key for restoring and saving the cache + key: ${{ runner.os }}-java-${{ hashFiles('**/*.gradle', 'java-sdk/gradle.properties') }} + restore-keys: | + ${{ runner.os }}-java- + + - name: Install gpg secret key + run: | + cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import + gpg --list-secret-keys --keyid-format LONG + + - name: Publish + env: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + run: ./gradlew -Psigning.gnupg.keyName=CBEF2CF0 -Psigning.gnupg.executable=gpg -Psigning.gnupg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} publish diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b9c13611..5c94209f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,9 +5,6 @@ on: release: types: [published] -env: - DOCKER_IMAGE: radarbase/radar-schemas-tools - jobs: upload: # The type of runner that the job will run on @@ -64,6 +61,9 @@ jobs: # The type of runner that the job will run on runs-on: ubuntu-latest + env: + DOCKER_IMAGE: radarbase/radar-schemas-tools + # Steps represent a sequence of tasks that will be executed as part of the job steps: - uses: actions/checkout@v2 @@ -94,6 +94,7 @@ jobs: - name: Build docker uses: docker/build-push-action@v2 with: + # Allow running the image on the architectures supported by openjdk:11-jre-slim platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.docker_meta.outputs.tags }} diff --git a/Dockerfile b/Dockerfile index 0c94c1bf..84b99597 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,14 +4,13 @@ RUN mkdir -p /code/java-sdk WORKDIR /code/java-sdk ENV GRADLE_USER_HOME=/code/.gradlecache -COPY java-sdk/gradle/*.gradle /code/java-sdk/gradle/ COPY java-sdk/build.gradle java-sdk/settings.gradle /code/java-sdk/ COPY java-sdk/radar-schemas-commons/build.gradle /code/java-sdk/radar-schemas-commons/ COPY java-sdk/radar-schemas-core/build.gradle /code/java-sdk/radar-schemas-core/ COPY java-sdk/radar-schemas-registration/build.gradle /code/java-sdk/radar-schemas-registration/ COPY java-sdk/radar-schemas-tools/build.gradle /code/java-sdk/radar-schemas-tools/ COPY java-sdk/radar-catalog-server/build.gradle /code/java-sdk/radar-catalog-server/ -RUN gradle downloadDependencies --no-watch-fs +RUN gradle downloadDependencies --no-watch-fs -Pprofile=docker COPY commons /code/commons COPY specifications /code/specifications @@ -22,7 +21,7 @@ COPY java-sdk/radar-schemas-registration/src /code/java-sdk/radar-schemas-regist COPY java-sdk/radar-schemas-tools/src /code/java-sdk/radar-schemas-tools/src COPY java-sdk/radar-catalog-server/src /code/java-sdk/radar-catalog-server/src -RUN gradle distTar --no-watch-fs \ +RUN gradle distTar --no-watch-fs -Pprofile=docker \ && cd radar-schemas-tools/build/distributions \ && tar xzf radar-schemas-tools*.tar.gz \ && cd ../../../radar-catalog-server/build/distributions \ diff --git a/commons/push/garmin/garmin_pulse_ox.avsc b/commons/push/garmin/garmin_pulse_ox.avsc index 45b4cccd..d62efcd8 100644 --- a/commons/push/garmin/garmin_pulse_ox.avsc +++ b/commons/push/garmin/garmin_pulse_ox.avsc @@ -10,7 +10,7 @@ {"name": "startTimeOffset", "type": ["null", "int"], "doc": "Offset in seconds to add to time to derive the 'local' time of the device that captured the data.", "default": null}, {"name": "date", "type": ["null", "string"], "doc": "The calendar date this summary would be displayed on in Garmin Connect in the local time zone of the device. The date format is ‘yyyy-mm-dd’.", "default": null}, {"name": "duration", "type": ["null", "int"], "doc": "Length of the monitoring period in seconds. 86400 once a full day is complete, but less if a user syncs mid-day.", "default": null}, - {"name": "spo2", "type": ["null", "float"], "doc": "The SpO2 measurement taken at the time (1 sample/minute).", "default": null}, + {"name": "spo2Value", "type": ["null", "float"], "doc": "The SpO2 measurement taken at the time (1 sample/minute).", "default": null}, {"name": "onDemand", "type": ["null", "boolean"], "doc": "A Boolean to show whether this pulse ox summary represents an on- demand reading or an averaged acclimation reading.", "default": null} ] -} \ No newline at end of file +} diff --git a/java-sdk/build.gradle b/java-sdk/build.gradle index 680a1913..46e1736f 100644 --- a/java-sdk/build.gradle +++ b/java-sdk/build.gradle @@ -8,7 +8,7 @@ plugins { } allprojects { - version = '0.7.0' + version = '0.7.1' group = 'org.radarbase' } @@ -57,14 +57,8 @@ subprojects { task downloadDependencies { description "Pre-downloads *most* dependencies" doLast { - configurations.getAsMap().each { name, config -> - println "Retrieving dependencies for $name" - try { - config.files - } catch (e) { - project.logger.info e.message // some cannot be resolved, silentlyish skip them - } - } + configurations.compileClasspath.files + configurations.runtimeClasspath.files } } } diff --git a/java-sdk/radar-catalog-server/build.gradle b/java-sdk/radar-catalog-server/build.gradle index d180f247..54a1fd64 100644 --- a/java-sdk/radar-catalog-server/build.gradle +++ b/java-sdk/radar-catalog-server/build.gradle @@ -1,7 +1,4 @@ plugins { - id 'idea' - id 'checkstyle' - id 'pmd' id 'application' } @@ -19,13 +16,6 @@ configurations { } } -sourceSets { - application { - compileClasspath += sourceSets.main.output - runtimeClasspath += sourceSets.main.output - } -} - description = 'RADAR Schemas specification and validation tools.' dependencies { @@ -47,7 +37,9 @@ application { mainClass.set('org.radarbase.schema.service.SourceCatalogueServer') } -apply from: "$rootDir/gradle/testing.gradle" +if (!project.hasProperty("profile") || project.property("profile") != "docker") { + apply from: "$rootDir/gradle/testing.gradle" +} //---------------------------------------------------------------------------// // Publishing // diff --git a/java-sdk/radar-schemas-commons/build.gradle b/java-sdk/radar-schemas-commons/build.gradle index a2ceb74c..72b3d635 100644 --- a/java-sdk/radar-schemas-commons/build.gradle +++ b/java-sdk/radar-schemas-commons/build.gradle @@ -48,4 +48,6 @@ compileJava.dependsOn generateAvro // Publishing // //---------------------------------------------------------------------------// -apply from: "$rootDir/gradle/publishing.gradle" +if (!project.hasProperty("profile") || project.property("profile") != "docker") { + apply from: "$rootDir/gradle/publishing.gradle" +} diff --git a/java-sdk/radar-schemas-core/build.gradle b/java-sdk/radar-schemas-core/build.gradle index bcea7258..cfc2685c 100644 --- a/java-sdk/radar-schemas-core/build.gradle +++ b/java-sdk/radar-schemas-core/build.gradle @@ -1,8 +1,5 @@ plugins { id 'java-library' - id 'idea' - id 'checkstyle' - id 'pmd' } compileJava { @@ -53,5 +50,7 @@ dependencies { testRuntimeOnly group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion } -apply from: "$rootDir/gradle/publishing.gradle" -apply from: "$rootDir/gradle/testing.gradle" +if (!project.hasProperty("profile") || project.property("profile") != "docker") { + apply from: "$rootDir/gradle/publishing.gradle" + apply from: "$rootDir/gradle/testing.gradle" +} diff --git a/java-sdk/radar-schemas-registration/build.gradle b/java-sdk/radar-schemas-registration/build.gradle index ed134476..4ad45c7d 100644 --- a/java-sdk/radar-schemas-registration/build.gradle +++ b/java-sdk/radar-schemas-registration/build.gradle @@ -1,8 +1,5 @@ plugins { id 'java-library' - id 'idea' - id 'checkstyle' - id 'pmd' } compileJava { @@ -19,13 +16,6 @@ configurations { } } -sourceSets { - application { - compileClasspath += sourceSets.main.output - runtimeClasspath += sourceSets.main.output - } -} - description = 'RADAR Schemas specification and validation tools.' repositories { @@ -57,5 +47,7 @@ tasks.withType(Tar) { archiveExtension.set('tar.gz') } -apply from: "$rootDir/gradle/publishing.gradle" -apply from: "$rootDir/gradle/testing.gradle" +if (!project.hasProperty("profile") || project.property("profile") != "docker") { + apply from: "$rootDir/gradle/publishing.gradle" + apply from: "$rootDir/gradle/testing.gradle" +} diff --git a/java-sdk/radar-schemas-tools/build.gradle b/java-sdk/radar-schemas-tools/build.gradle index 0144807f..513b4010 100644 --- a/java-sdk/radar-schemas-tools/build.gradle +++ b/java-sdk/radar-schemas-tools/build.gradle @@ -1,5 +1,4 @@ plugins { - id 'idea' id 'application' } @@ -17,13 +16,6 @@ configurations { } } -sourceSets { - application { - compileClasspath += sourceSets.main.output - runtimeClasspath += sourceSets.main.output - } -} - description = 'RADAR Schemas specification and validation tools.' repositories { diff --git a/specifications/active/aRMT-1.12.0.yml b/specifications/active/aRMT-1.12.0.yml new file mode 100644 index 00000000..a54ef120 --- /dev/null +++ b/specifications/active/aRMT-1.12.0.yml @@ -0,0 +1,228 @@ +name: aRMT +vendor: RADAR +model: aRMT-App +version: 1.12.0 +assessment_type: QUESTIONNAIRE +doc: aRMT Questionnaires definition. Includes Personal Health Questionnaire Depression Scale (PHQ-8), Experience sampling method (ESM) and RSES and other data. +data: + - type: THINC_IT + topic: notification_thinc_it + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/thinc_it/thinc_it_armt.json + - type: ROMBERG_TEST + doc: The value of the task is in milliseconds (ms). + topic: task_romberg_test + value_schema: .active.task.Task + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/romberg_test/romberg_test_armt.json + - type: 2MW_TEST + doc: The value of the task is in milliseconds (ms). + topic: task_2MW_test + value_schema: .active.task.Task + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/2MW_test/2MW_test_armt.json + - type: TANDEM_WALKING_TEST + doc: The value of the task is in milliseconds (ms). + topic: task_tandem_walking_test + value_schema: .active.task.Task + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/tandem_walking_test/tandem_walking_test_armt.json + - type: PHQ8 + topic: questionnaire_phq8 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/phq8/phq8_armt.json + - type: ESM + topic: questionnaire_esm + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/esm/esm_armt.json + - type: AUDIO + doc: A speech questionnaire that contain two parts, a scripted text part where users will record themselves reading a text aloud, and an unscripted text part where users will record themselves answering a question. + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio/audio_armt.json + - type: AUDIO_2 + doc: A speech questionnaire that contain two parts, a scripted text part where users will record themselves reading a text aloud, and an unscripted text part where users will record themselves answering a question. + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_2/audio_2_armt.json + - type: AUDIO_3 + doc: A speech questionnaire that contain two parts, a scripted text part where users will record themselves reading a text aloud, and an unscripted text part where users will record themselves answering a question. + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_3/audio_3_armt.json + - type: AUDIO_4 + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_4/audio_4_armt.json + - type: RSES + topic: questionnaire_rses + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/rses/rses_armt.json + - type: PERCEIVED_DEFICITS_QUESTIONNAIRE + topic: questionnaire_perceived_deficits_questionnaire + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/perceived_deficits_questionnaire/perceived_deficits_questionnaire_armt.json + - type: PATIENT_DETERMINED_DISEASE_STEP + topic: questionnaire_patient_determined_disease_step + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/patient_determined_disease_step/patient_determined_disease_step_armt.json + - type: ESM28Q + topic: questionnaire_esm28q + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/esm28q/esm28q_armt.json + - type: BIPQ + topic: questionnaire_bipq + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/bipq/bipq_armt.json + - type: ESM_EPI_MOD_1 + topic: questionnaire_esm_epi_mod_1 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/esm_epi_mod_1/esm_epi_mod_1_armt.json + - type: EVENING_ASSESSMENT + topic: questionnaire_evening_assessment + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/evening_assessment/evening_assessment_armt.json + - type: MORNING_ASSESSMENT + topic: questionnaire_morning_assessment + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/morning_assessment/morning_assessment_armt.json + - type: TAM + topic: questionnaire_tam + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/tam/tam_armt.json + - type: BAARS_IV + topic: questionnaire_baars_iv + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/baars_iv/baars_iv_armt.json + - type: ARI_SELF + topic: questionnaire_ari_self + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/ari_self/ari_self_armt.json + - type: GAD7 + topic: questionnaire_gad7 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/gad7/gad7_armt.json + - type: RPQ + topic: questionnaire_rpq + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/rpq/rpq_armt.json + - type: ART_COGNITIVE_TEST + topic: questionnaire_art_cognitive_test + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/art_cognitive_test/art_cognitive_test_armt.json + - type: COVID19_DIAGNOSIS + topic: questionnaire_covid19_diagnosis + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/covid19_diagnosis/covid19_diagnosis_armt.json + - type: COVID19_SYMPTOMS + topic: questionnaire_covid19_symptoms + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/covid19_symptoms/covid19_symptoms_armt.json + - type: CNS_COVID19_BASELINE + topic: questionnaire_cns_covid19_baseline + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_baseline/cns_covid19_baseline_armt.json + - type: CNS_COVID19_FOLLOWUP + topic: questionnaire_cns_covid19_followup + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_followup/cns_covid19_followup_armt.json + - type: CNS_COVID19_FOLLOWUP_V2 + topic: questionnaire_cns_covid19_followup_v2 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_followup_v2/cns_covid19_followup_v2_armt.json + - type: CNS_COVID19_FOLLOWUP_V3 + topic: questionnaire_cns_covid19_followup_v3 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_followup_v3/cns_covid19_followup_v3_armt.json + - type: ART_COVID19_FOLLOWUP + topic: questionnaire_art_covid19_followup + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/art_covid19_followup/art_covid19_followup_armt.json + - type: ADHD_MEDICATION_USE + topic: questionnaire_adhd_medication_use + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/adhd_medication_use/adhd_medication_use_armt.json + - type: QIDS + topic: questionnaire_qids + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/qids/qids_armt.json + - type: WSAS + topic: questionnaire_wsas + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/wsas/wsas_armt.json + - type: SLEEP_QUESTIONS + topic: questionnaire_rapid_sleep_questions + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/sleep_questions/sleep_questions_armt.json + - type: AUDIO_WITHOUT_UNSCRIPTED + doc: A speech questionnaire similar to the AUDIO questionnaire but without the second unscripted task. + topic: questionnaire_audio_without_unscripted + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_without_unscripted/audio_without_unscripted_armt.json + - type: AUDIO_WITHOUT_UNSCRIPTED_2 + doc: A speech questionnaire similar to the AUDIO questionnaire but without the second unscripted task. + topic: questionnaire_audio_without_unscripted_2 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_without_unscripted_2/audio_without_unscripted_armt.json + - type: AUDIO_WITHOUT_UNSCRIPTED_3 + doc: A speech questionnaire similar to the AUDIO questionnaire but without the second unscripted task. + topic: questionnaire_audio_without_unscripted_3 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_without_unscripted_3/audio_without_unscripted_armt.json + - type: CAT + topic: questionnaire_cat + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cat/cat_armt.json + - type: PSQI + topic: questionnaire_psqi + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/psqi/psqi_armt.json + - type: FSS + topic: questionnaire_fss + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/fss/fss_armt.json + - type: PCFS + topic: questionnaire_pcfs + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/pcfs/pcfs_armt.json + - type: RALPMH_COVID_SYMPTOMS + topic: questionnaire_ralpmh_covid_symptoms + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/ralpmh_covid_symptoms/ralpmh_covid_symptoms_armt.json + - type: LIPF + topic: questionnaire_lipf + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/lipf/lipf_armt.json + - type: ERS + topic: questionnaire_ers + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/ers/ers_armt.json + - type: VAS + topic: questionnaire_vas + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/vas/vas_armt.json + - type: COMPLETION_LOG + doc: Information about the completeness of each questionnaire. + topic: questionnaire_completion_log + value_schema: .monitor.questionnaire.QuestionnaireCompletionLog + - type: TIMEZONE + doc: Timezone information sent along with each questionnaire. + topic: questionnaire_timezone + value_schema: .monitor.application.ApplicationTimeZone + - type: APP_EVENT + doc: Questionnaire application interaction event. + topic: questionnaire_app_event + value_schema: .monitor.questionnaire.QuestionnaireApplicationInteractionEvent + - type: EPI_SEIZURE_DIARY + topic: questionnaire_epi_seizure_diary + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/epi_seizure_diary/epi_seizure_diary_armt.json + - type: EPI_EVENING_QUESTIONNAIRE + topic: questionnaire_epi_evening_questionnaire + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/epi_evening_questionnaire/epi_evening_questionnaire_armt.json + - type: EPI_WSAS + topic: questionnaire_epi_wsas + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/epi_wsas/epi_wsas_armt.json + - type: BP_QUESTIONNAIRE + topic: questionnaire_bp + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/bp/bp_armt.json \ No newline at end of file diff --git a/specifications/active/aRMT-1.13.0.yml b/specifications/active/aRMT-1.13.0.yml new file mode 100644 index 00000000..9266e100 --- /dev/null +++ b/specifications/active/aRMT-1.13.0.yml @@ -0,0 +1,232 @@ +name: aRMT +vendor: RADAR +model: aRMT-App +version: 1.13.0 +assessment_type: QUESTIONNAIRE +doc: aRMT Questionnaires definition. Includes Personal Health Questionnaire Depression Scale (PHQ-8), Experience sampling method (ESM) and RSES and other data. +data: + - type: THINC_IT + topic: notification_thinc_it + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/thinc_it/thinc_it_armt.json + - type: ROMBERG_TEST + doc: The value of the task is in milliseconds (ms). + topic: task_romberg_test + value_schema: .active.task.Task + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/romberg_test/romberg_test_armt.json + - type: 2MW_TEST + doc: The value of the task is in milliseconds (ms). + topic: task_2MW_test + value_schema: .active.task.Task + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/2MW_test/2MW_test_armt.json + - type: TANDEM_WALKING_TEST + doc: The value of the task is in milliseconds (ms). + topic: task_tandem_walking_test + value_schema: .active.task.Task + questionnaire_definition_url: https://github.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/blob/master/questionnaires/tandem_walking_test/tandem_walking_test_armt.json + - type: PHQ8 + topic: questionnaire_phq8 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/phq8/phq8_armt.json + - type: ESM + topic: questionnaire_esm + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/esm/esm_armt.json + - type: AUDIO + doc: A speech questionnaire that contain two parts, a scripted text part where users will record themselves reading a text aloud, and an unscripted text part where users will record themselves answering a question. + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio/audio_armt.json + - type: AUDIO_2 + doc: A speech questionnaire that contain two parts, a scripted text part where users will record themselves reading a text aloud, and an unscripted text part where users will record themselves answering a question. + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_2/audio_2_armt.json + - type: AUDIO_3 + doc: A speech questionnaire that contain two parts, a scripted text part where users will record themselves reading a text aloud, and an unscripted text part where users will record themselves answering a question. + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_3/audio_3_armt.json + - type: AUDIO_4 + topic: questionnaire_audio + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_4/audio_4_armt.json + - type: RSES + topic: questionnaire_rses + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/rses/rses_armt.json + - type: PERCEIVED_DEFICITS_QUESTIONNAIRE + topic: questionnaire_perceived_deficits_questionnaire + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/perceived_deficits_questionnaire/perceived_deficits_questionnaire_armt.json + - type: PATIENT_DETERMINED_DISEASE_STEP + topic: questionnaire_patient_determined_disease_step + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/patient_determined_disease_step/patient_determined_disease_step_armt.json + - type: ESM28Q + topic: questionnaire_esm28q + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/esm28q/esm28q_armt.json + - type: BIPQ + topic: questionnaire_bipq + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/bipq/bipq_armt.json + - type: ESM_EPI_MOD_1 + topic: questionnaire_esm_epi_mod_1 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/esm_epi_mod_1/esm_epi_mod_1_armt.json + - type: EVENING_ASSESSMENT + topic: questionnaire_evening_assessment + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/evening_assessment/evening_assessment_armt.json + - type: MORNING_ASSESSMENT + topic: questionnaire_morning_assessment + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/morning_assessment/morning_assessment_armt.json + - type: TAM + topic: questionnaire_tam + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/tam/tam_armt.json + - type: BAARS_IV + topic: questionnaire_baars_iv + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/baars_iv/baars_iv_armt.json + - type: ARI_SELF + topic: questionnaire_ari_self + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/ari_self/ari_self_armt.json + - type: GAD7 + topic: questionnaire_gad7 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/gad7/gad7_armt.json + - type: RPQ + topic: questionnaire_rpq + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/rpq/rpq_armt.json + - type: ART_COGNITIVE_TEST + topic: questionnaire_art_cognitive_test + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/art_cognitive_test/art_cognitive_test_armt.json + - type: COVID19_DIAGNOSIS + topic: questionnaire_covid19_diagnosis + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/covid19_diagnosis/covid19_diagnosis_armt.json + - type: COVID19_SYMPTOMS + topic: questionnaire_covid19_symptoms + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/covid19_symptoms/covid19_symptoms_armt.json + - type: CNS_COVID19_BASELINE + topic: questionnaire_cns_covid19_baseline + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_baseline/cns_covid19_baseline_armt.json + - type: CNS_COVID19_FOLLOWUP + topic: questionnaire_cns_covid19_followup + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_followup/cns_covid19_followup_armt.json + - type: CNS_COVID19_FOLLOWUP_V2 + topic: questionnaire_cns_covid19_followup_v2 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_followup_v2/cns_covid19_followup_v2_armt.json + - type: CNS_COVID19_FOLLOWUP_V3 + topic: questionnaire_cns_covid19_followup_v3 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cns_covid19_followup_v3/cns_covid19_followup_v3_armt.json + - type: ART_COVID19_FOLLOWUP + topic: questionnaire_art_covid19_followup + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/art_covid19_followup/art_covid19_followup_armt.json + - type: ADHD_MEDICATION_USE + topic: questionnaire_adhd_medication_use + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/adhd_medication_use/adhd_medication_use_armt.json + - type: QIDS + topic: questionnaire_qids + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/qids/qids_armt.json + - type: WSAS + topic: questionnaire_wsas + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/wsas/wsas_armt.json + - type: SLEEP_QUESTIONS + topic: questionnaire_rapid_sleep_questions + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/sleep_questions/sleep_questions_armt.json + - type: AUDIO_WITHOUT_UNSCRIPTED + doc: A speech questionnaire similar to the AUDIO questionnaire but without the second unscripted task. + topic: questionnaire_audio_without_unscripted + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_without_unscripted/audio_without_unscripted_armt.json + - type: AUDIO_WITHOUT_UNSCRIPTED_2 + doc: A speech questionnaire similar to the AUDIO questionnaire but without the second unscripted task. + topic: questionnaire_audio_without_unscripted_2 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_without_unscripted_2/audio_without_unscripted_armt.json + - type: AUDIO_WITHOUT_UNSCRIPTED_3 + doc: A speech questionnaire similar to the AUDIO questionnaire but without the second unscripted task. + topic: questionnaire_audio_without_unscripted_3 + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/audio_without_unscripted_3/audio_without_unscripted_armt.json + - type: CAT + topic: questionnaire_cat + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/cat/cat_armt.json + - type: PSQI + topic: questionnaire_psqi + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/psqi/psqi_armt.json + - type: FSS + topic: questionnaire_fss + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/fss/fss_armt.json + - type: PCFS + topic: questionnaire_pcfs + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/pcfs/pcfs_armt.json + - type: RALPMH_COVID_SYMPTOMS + topic: questionnaire_ralpmh_covid_symptoms + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/ralpmh_covid_symptoms/ralpmh_covid_symptoms_armt.json + - type: LIPF + topic: questionnaire_lipf + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/lipf/lipf_armt.json + - type: ERS + topic: questionnaire_ers + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/ers/ers_armt.json + - type: VAS + topic: questionnaire_vas + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/vas/vas_armt.json + - type: COMPLETION_LOG + doc: Information about the completeness of each questionnaire. + topic: questionnaire_completion_log + value_schema: .monitor.questionnaire.QuestionnaireCompletionLog + - type: TIMEZONE + doc: Timezone information sent along with each questionnaire. + topic: questionnaire_timezone + value_schema: .monitor.application.ApplicationTimeZone + - type: APP_EVENT + doc: Questionnaire application interaction event. + topic: questionnaire_app_event + value_schema: .monitor.questionnaire.QuestionnaireApplicationInteractionEvent + - type: EPI_SEIZURE_DIARY + topic: questionnaire_epi_seizure_diary + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/epi_seizure_diary/epi_seizure_diary_armt.json + - type: EPI_EVENING_QUESTIONNAIRE + topic: questionnaire_epi_evening_questionnaire + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/epi_evening_questionnaire/epi_evening_questionnaire_armt.json + - type: EPI_WSAS + topic: questionnaire_epi_wsas + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/epi_wsas/epi_wsas_armt.json + - type: BP_QUESTIONNAIRE + topic: questionnaire_bp + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/bp/bp_armt.json + - type: HLH_QUESTIONNAIRE + topic: questionnaire_hlh + value_schema: .active.questionnaire.Questionnaire + questionnaire_definition_url: https://raw.githubusercontent.com/RADAR-base/RADAR-REDCap-aRMT-Definitions/master/questionnaires/hlh/hlh_armt.json