Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New longitudinal export not working when registration form has repeatable observations #1051

Closed
4 tasks
nupoorkhandelwal opened this issue Sep 29, 2023 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@nupoorkhandelwal
Copy link
Contributor

nupoorkhandelwal commented Sep 29, 2023

Describe the bug
New Longitudinal export is not working properly, even with a valid json its not giving results instead failing and no option to download it

To Reproduce
Steps to reproduce the behavior:

  1. Go to RAHI org
  2. Click on Reports module >> New Longitudinal export
  3. Paste this json in the request payload
{
  "individual": {
    "uuid": "82e97745-a0cb-4af0-be75-e980d065c7ce",
    "fields": [
      "id",
      "uuid",
      "firstName",
      "registrationDate",
    ],
    "filters": {
      "addressLevelIds": [],
      "date": {
        "from": "2020-01-12",
        "to": "2022-05-04"
      }
    }
  },
  "timezone": "Asia/Calcutta"
}
  1. See that it fails and without any dowloadable error file

AC:

The export should work as expected, when any form has repeatable question group - enrolment, exit, encounter, encounter cancel, registration.

Analysis:

From the code, looks like we have assumed that only encounters can have repeatable question group. But in the above case, subject registration has and hence the failure.

Stacktrace:

2023-10-15 17:40:56.217  INFO 12766 --- [BatchConfiguration.1.1-1] .a.s.e.JobCompletionNotificationListener : Job finished with status FAILED
2023-10-15 17:40:56.218 ERROR 12766 --- [BatchConfiguration.1.1-1] .a.s.e.JobCompletionNotificationListener : Error during job

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.exportV2Tasklet' defined in class path resource [org/avni/server/exporter/ExportBatchConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.batch.core.step.tasklet.Tasklet]: Factory method 'exportV2Tasklet' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.exportV2CSVFieldExtractor': Invocation of init method failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select max(json_array_length((observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b')::json)) from individual where observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b' is not null and (encounter_date_time between ? and ?)]; nested exception is org.postgresql.util.PSQLException: ERROR: column "encounter_date_time" does not exist
  Position: 187
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:348)
	at org.springframework.batch.core.scope.StepScope.get(StepScope.java:113)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:345)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
	at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:193)
	at com.sun.proxy.$Proxy303.execute(Unknown Source)
	at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:406)
	at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:330)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:272)
	at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:81)
	at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:375)
	at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)
	at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:145)
	at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:257)
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:200)
	at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148)
	at org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:394)
	at org.springframework.batch.core.job.SimpleJob.doExecute(SimpleJob.java:135)
	at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:308)
	at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:141)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.batch.core.step.tasklet.Tasklet]: Factory method 'exportV2Tasklet' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.exportV2CSVFieldExtractor': Invocation of init method failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select max(json_array_length((observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b')::json)) from individual where observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b' is not null and (encounter_date_time between ? and ?)]; nested exception is org.postgresql.util.PSQLException: ERROR: column "encounter_date_time" does not exist
  Position: 187
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
	... 29 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.exportV2CSVFieldExtractor': Invocation of init method failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select max(json_array_length((observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b')::json)) from individual where observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b' is not null and (encounter_date_time between ? and ?)]; nested exception is org.postgresql.util.PSQLException: ERROR: column "encounter_date_time" does not exist
  Position: 187
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:138)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:423)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1702)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:583)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:348)
	at org.springframework.batch.core.scope.StepScope.get(StepScope.java:113)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:345)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
	at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:35)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at org.avni.server.exporter.v2.ExportV2CSVFieldExtractor$$EnhancerBySpringCGLIB$$37605654.getExportOutput(<generated>)
	at org.avni.server.exporter.ExportBatchConfiguration.exportV2Tasklet(ExportBatchConfiguration.java:120)
	at org.avni.server.exporter.ExportBatchConfiguration$$EnhancerBySpringCGLIB$$c2b0ac8e.CGLIB$exportV2Tasklet$4(<generated>)
	at org.avni.server.exporter.ExportBatchConfiguration$$EnhancerBySpringCGLIB$$c2b0ac8e$$FastClassBySpringCGLIB$$2bc4eaff.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
	at org.avni.server.exporter.ExportBatchConfiguration$$EnhancerBySpringCGLIB$$c2b0ac8e.exportV2Tasklet(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 30 common frames omitted
Caused by: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select max(json_array_length((observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b')::json)) from individual where observations->>'e3a0194d-1ad2-4ebe-97c2-cf80625feb0b' is not null and (encounter_date_time between ? and ?)]; nested exception is org.postgresql.util.PSQLException: ERROR: column "encounter_date_time" does not exist
  Position: 187
	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1402)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:620)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:657)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:682)
	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:736)
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:211)
	at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:218)
	at org.avni.server.service.ObservationService.lambda$null$12(ObservationService.java:371)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at org.avni.server.service.ObservationService.lambda$getMaxNumberOfQuestionGroupObservations$13(ObservationService.java:361)
	at java.util.HashMap.forEach(HashMap.java:1290)
	at org.avni.server.service.ObservationService.getMaxNumberOfQuestionGroupObservations(ObservationService.java:352)
	at org.avni.server.exporter.v2.ExportV2CSVFieldExtractor.init(ExportV2CSVFieldExtractor.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:369)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:312)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:135)
	... 52 common frames omitted
Caused by: org.postgresql.util.PSQLException: ERROR: column "encounter_date_time" does not exist
  Position: 187
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:305)
	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
	at com.sun.proxy.$Proxy131.executeQuery(Unknown Source)
	at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:666)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:605)
	... 70 common frames omitted

2023-10-15 17:40:56.729  INFO 12766 --- [http-nio-8021-exec-525] o.a.s.f.security.AuthenticationFilter    : GET /export/status?page=0&size=10 User: maha@rahi Organisation: RAHI Time: 694 ms
2023-10-15 17:40:58.174  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1314492
2023-10-15 17:40:58.225  INFO 12766 --- [http-nio-8021-exec-526] o.a.s.f.security.AuthenticationFilter    : Received request GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:26.305Z&size=100&page=11
2023-10-15 17:40:58.435  INFO 12766 --- [http-nio-8021-exec-526] o.a.s.f.security.AuthenticationFilter    : GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:26.305Z&size=100&page=11 User: ERT16@jnpct Organisation: JNPCT Time: 192 ms
2023-10-15 17:40:59.757  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1314492
2023-10-15 17:41:02.484  INFO 12766 --- [http-nio-8021-exec-541] o.a.s.f.security.AuthenticationFilter    : Received request GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:25.068Z&size=100&page=11
2023-10-15 17:41:02.855  INFO 12766 --- [http-nio-8021-exec-541] o.a.s.f.security.AuthenticationFilter    : GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:25.068Z&size=100&page=11 User: ERT16@jnpct Organisation: JNPCT Time: 353 ms
2023-10-15 17:41:03.442  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1168832
2023-10-15 17:41:05.952  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1168852
2023-10-15 17:41:06.023  INFO 12766 --- [http-nio-8021-exec-540] o.a.s.f.security.AuthenticationFilter    : Received request GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:26.305Z&size=100&page=12
2023-10-15 17:41:06.233  INFO 12766 --- [http-nio-8021-exec-540] o.a.s.f.security.AuthenticationFilter    : GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:26.305Z&size=100&page=12 User: ERT16@jnpct Organisation: JNPCT Time: 186 ms
2023-10-15 17:41:07.779  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1168824
2023-10-15 17:41:09.274  INFO 12766 --- [http-nio-8021-exec-528] o.a.s.f.security.AuthenticationFilter    : Received request GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:25.068Z&size=100&page=12
2023-10-15 17:41:09.462  INFO 12766 --- [http-nio-8021-exec-528] o.a.s.f.security.AuthenticationFilter    : GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:25.068Z&size=100&page=12 User: ERT16@jnpct Organisation: JNPCT Time: 172 ms
2023-10-15 17:41:09.476  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1168823
2023-10-15 17:41:11.551  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1168817
2023-10-15 17:41:12.043  INFO 12766 --- [http-nio-8021-exec-539] o.a.s.f.security.AuthenticationFilter    : Received request GET /ping?null
2023-10-15 17:41:13.359  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1156850
2023-10-15 17:41:13.537  INFO 12766 --- [http-nio-8021-exec-531] o.a.s.f.security.AuthenticationFilter    : Received request GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:26.305Z&size=100&page=13
2023-10-15 17:41:13.829  INFO 12766 --- [http-nio-8021-exec-531] o.a.s.f.security.AuthenticationFilter    : GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:26.305Z&size=100&page=13 User: ERT16@jnpct Organisation: JNPCT Time: 267 ms
2023-10-15 17:41:15.940  WARN 12766 --- [pool-6-thread-1] o.a.messaging.service.MessagingService   : Phone number not available or incorrect for receiver: 1168819
2023-10-15 17:41:16.755  INFO 12766 --- [http-nio-8021-exec-459] o.a.s.f.security.AuthenticationFilter    : Received request GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:25.068Z&size=100&page=13
2023-10-15 17:41:16.928  INFO 12766 --- [http-nio-8021-exec-459] o.a.s.f.security.AuthenticationFilter    : GET /programEncounter?programEncounterTypeUuid=0a0504d7-a420-4b00-ab03-c620071efa41&lastModifiedDateTime=1900-01-01T00:00:00.000Z&now=2023-10-15T16:50:25.068Z&size=100&page=13 User: ERT16@jnpct Organisation: JNPCT Time: 158 ms
2023-10-15 17:41:17.486  INFO 12766 --- [http-nio-8021-exec-542] o.a.s.f.security.AuthenticationFilter    : Received request GET /export/status?page=0&size=10

Additional context
Add any other context about the problem here.

Developer Checklist(Developer fixing the bug should fill this checklist)

  • Does the fix require extensive regression testing?
    • Yes
    • No
  • Are you mentioning the required scenarios that could be affected?
    • Yes
    • No
@nupoorkhandelwal nupoorkhandelwal moved this to New Issues in Avni Product Sep 29, 2023
@nupoorkhandelwal nupoorkhandelwal added the bug Something isn't working label Sep 29, 2023
@mahalakshme mahalakshme moved this from New Issues to Triaging analysis in Avni Product Oct 4, 2023
@mahalakshme mahalakshme moved this from Triaging analysis to Focus Items in Avni Product Oct 5, 2023
@mahalakshme mahalakshme moved this from Focus Items to In Analysis in Avni Product Oct 13, 2023
@mahalakshme mahalakshme changed the title New longitudinal export not working New longitudinal export not working when registration form has repeatable observations Oct 15, 2023
@mahalakshme mahalakshme moved this from In Analysis to In Analysis Review in Avni Product Oct 15, 2023
@vinayvenu vinayvenu moved this from In Analysis Review to Analysis Complete in Avni Product Oct 16, 2023
@mahalakshme mahalakshme moved this from Analysis Complete to Ready in Avni Product Oct 17, 2023
@petmongrels petmongrels moved this from Ready to In Progress in Avni Product Oct 17, 2023
@petmongrels petmongrels self-assigned this Oct 17, 2023
@petmongrels
Copy link
Contributor

includes this commit - avniproject/avni-server@819ad2a

@petmongrels petmongrels moved this from In Progress to Code Review Ready in Avni Product Oct 18, 2023
@vinayvenu vinayvenu moved this from Code Review Ready to In Code Review in Avni Product Oct 19, 2023
@vinayvenu
Copy link
Member

Testing notes: There is an additional feature where the App Designer will now show uuids of all these fields under a "UUID" field on SubjectType, Program, EncounterType and Form

@vinayvenu vinayvenu moved this from In Code Review to Done in Avni Product Oct 19, 2023
@vinayvenu vinayvenu moved this from Done to QA Ready in Avni Product Oct 19, 2023
@AchalaBelokar AchalaBelokar moved this from QA Ready to In QA in Avni Product Oct 20, 2023
@AchalaBelokar AchalaBelokar moved this from In QA to QA Ready in Avni Product Oct 20, 2023
@AchalaBelokar AchalaBelokar moved this from QA Ready to In QA in Avni Product Oct 26, 2023
@AchalaBelokar AchalaBelokar moved this from In QA to Done in Avni Product Oct 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Archived in project
Development

No branches or pull requests

3 participants